2012-06-25 40 views
2

我正在嘗試從生產服務器創建一個開發服務器,從中我可以測試出新想法。爲什麼django manage.py syncdb無法在我的開發服務器上創建新列?

我通過使用Postgres的db_dump轉儲它來創建我的生產服務器數據庫的副本,然後將轉儲導入新數據庫。

我再複製我的生產Django的目錄,並修改所有.py文件指server_debug.,而不是serverimport語句。

使用管理界面來修改某些數據的工作原理是隻有開發服務器修改了其數據。

但是,當我嘗試在我的開發服務器的models.py中添加一個新字段時,manage.py syncdb無法創建它。

有沒有什麼我忽略可能導致manage.py指我的生產服務器,而不是我的開發服務器?

回答

4

syncdb不接觸已存在的表。例如,您需要重置應用程序(如果您不關心數據,最簡單),手動修改表格(更多快速入門)或使用移植應用程序併爲您的模型版本 - South

+0

也許我用我的問題了錯誤的條件,但如果我創建一個新的作品在我的models.py文件中的數據,說: 'middle_name = models.CharField(MAX_LENGTH = 50)' 那就不要我需要運行'manage.py'來添加這個列的數據庫? 這是在一個預先存在的類。 – EMiller

+0

通過文檔查看我看到你是對的。我現在完全被這個困惑了。我認爲Django的一個特性就是它不需要真正的通過並直接向你的數據庫提供SQL。我可以理解,如果改變列Django不知道如何處理現有的數據。但是如果我添加一個新列,爲什麼Django不能爲我發佈命令? – EMiller

相關問題