2014-12-04 36 views
0

我有一個django項目「demo_project」,我運行了syncdb命令並創建了表和保存的數據。然後我拿了這個項目的一個副本「demo_project_copy」並運行syncdb命令。現在我無法登錄以前存儲在數據庫中的數據(錯誤:無效憑證)。當我在「demo_project」上運行syncdb時,出現錯誤。 「demo_project_copy」上的syncdb覆蓋了「demo_project」的數據嗎?發生了什麼?在django的syncdb上覆蓋數據

+0

我得到的錯誤,居然在某些型號有之前使用的一些遷移。所以他們必須手動添加'遷移'。 抱歉,錯過了,它的晚上7點30分,仍然在辦公室。 – ancho 2014-12-18 13:41:24

回答

0

syncdb不覆蓋數據庫數據,它只是添加您安裝在項目中的應用程序所需的數據庫表。因此,如果您在settings.py文件的INSTALLED_APPS中添加新的應用程序,然後運行syncdb,那麼該命令將添加必要的表格,僅此而已。

如果您使用的是django 1.7.x,最好使用migrate命令,因爲django 1.7.x syncdb已被棄用。

參考的執行syncdb命令時,文檔是非常好的Django的: https://docs.djangoproject.com/en/1.6/ref/django-admin/#syncdb

+0

我正在使用django-1.6,我得到了錯誤,實際上在某些模型中有一些以前使用過的遷移。所以他們必須手動添加'遷移'。遺憾的是,這個錯誤已經耗盡了,它的晚上7點30分還在辦公室。 – ancho 2014-12-18 13:41:54

+0

如果您在正在進行的項目中更改模型,則應考慮使用South。南方可以以體面的方式處理模型遷移。或者也許未來考慮升級到django 1.7 – Marcs 2014-12-19 13:02:57