2014-10-13 53 views
0

我對我的模型做了一些改變,但我不能爲我的生活弄清楚如何讓我的數據庫反映我的模型。到目前爲止,我已嘗試以下內容:如何讓我的數據庫反映對models.py所做的更改?

python manage.py shelldb 
SELECT * FROM sqlite_master WHERE type='table'; 
DROP TABLE appname_modelname; 

當我試圖獲得:「unknown command:shelldb」。

我也試過:

蟒蛇manage.py dbshel​​l DROP TABLE accounts_userreview;

沒有錯誤,但我的數據庫仍然不反映我的模型。

最後,我只是通過將數據庫拖入垃圾箱然後再執行syncdb來刪除我的數據庫,然後使我創建了一個新的超級用戶,但仍然創建的數據庫並不反映對我的模型所做的更改。

我在這裏不知所措,我還能在這裏做什麼?另外,我是學習Django的新手,模型和數據庫之間是否存在某種層次?我會假設有刪除,然後重建數據庫不起作用。

希望能在這裏得到任何建議。

+0

如果你得到你的答案標記爲varified。 – ancho

+0

'python manage.py migrate'是你需要的。 –

+0

如果刪除數據庫並重新運行syncdb不起作用,那麼您要麼未保存模型文件,要麼未更新您認爲具有的模型文件。 Django不添加任何圖層,那會是什麼意思? –

回答

2

如果您使用的是Django < 1.7,則必須使用一些遷移工具,即 - South。 Django 1.7具有內置移植。

欲瞭解更多信息migrations

+0

我正在運行1.6版本,並且我對South的理解是,在我對模型進行更改以便在這種情況下有用之前,我需要使用它。 – stephan

1

運行在終端這些命令使遷移Django的1.7 蟒蛇manage.py makemigrations 蟒蛇manage.py執行syncdb

Django的< 1.7 使用南

相關問題