【解決】Django下使用sqlite3的相關問題


最近在玩Django,想用它寫一個很小很小的項目,Django自帶數據庫sqlite3,本來項目也小,我就用它了。

玩意雖小,東西卻不是那么好用的。

首先,在項目中建立模型,一個例子是這樣的:

class Milestone(models.Model):
    Content = models.CharField(max_length=500)
    Date = models.DateField()

然后,在python命令行中鍵入:python manage.py syncdb

OK ,它將在sqlite3數據庫中自動建立表enrich_milestone,它包含Content和Date字段。

后來我想把Date的屬性改為char型,於是修改了模型,變成這樣:

class Milestone(models.Model):
    Content = models.CharField(max_length=500)
    Date = models.CharField(max_length=200)

注意,這時候再次使用python manage.py syncdb是無效的,它並不會去同步數據庫的修改,也就是說,它可以同步的真是數據庫從無到有的過程,如果數據庫已經存在,它不會偵測數據庫內部是否變動並幫你修改,讓人挺不爽的。

怎么辦

我去sqlite的官網下載了一個sqlite3.exe下來,x86的,官網沒有x64的,既然沒有,我想應該是通用的,試了一下果然如此。

我把sqlite3.exe反正項目目錄下,和本項目的數據庫db.sqlite3一起,在此打開命令行窗口,進入sqlite。

1、用.open 載入db.sqlite文件

2、可以用.databases查看該文件下有哪些數據庫,用.tables查看有哪些表

3、我直接drop table 表名(這個是標准sql語句吧),把它刪除

4、返回Django使用python manage.py syncdb把數據庫表從無到有同步過來,大功告成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM