2016-11-23 52 views
-1

我在Django中有兩個不同的數據庫。最初,我在輔助數據庫中有一個名爲cdr的表。我決定擺脫第二個數據庫,並將cdr表添加到第一個數據庫。Django不會創建表

我在設置文件和整個應用程序中刪除了引用(我認爲所有這些引用)到輔助數據庫。我刪除了所有的遷移文件,並運行新的遷移。

當我運行遷移,即使它不會對我的Postgres數據庫存在,則不會創建用於在二級數據庫中的表。

我簡直不能理解爲什麼makemigrations函數會在將表格添加回模型定義並且已驗證它位於遷移文件中時爲表創建遷移文件。當我運行遷移時,它告訴我沒有適用的遷移。

這是爲什麼。我已經確認我已經管理= True。我已經確認該模型不在我的postgres數據庫上,登錄到第一個數據庫並運行\ dt。

爲什麼Django的仍然認爲這表仍然存在,使得它告訴我沒有遷移申請,即使它顯示了一個遷移創建命令文件?我甚至放棄了輔助數據庫,以確保它不會被引用。

我懷疑代碼不需要向我解釋這一點,但我會發布如果需要。我想我在這裏錯過了一些簡單的東西。

回答

2

爲什麼Django的仍然認爲該數據庫仍然存在,使得 它告訴我沒有遷移申請,即使它顯示了在遷移一個創建 命令文件

因爲Django的維護一個表在您的數據庫中稱爲django_migrations,其中列出了所有已應用的遷移。由於您幾乎重新開始,請清除此表,然後運行遷移。

如果這仍然不起作用,仍然假設你仍然在一個新的開始,這是一個簡單的事情放下所有的表(或甚至數據庫,並再次進行遷移)。還有,你有要保存的數據,你需要看看--fake和--fake-initial選項來遷移

+0

謝謝。當我試圖清理這張桌子時,遇到了許多新問題。內容類型作爲權限表問題出現。我從這些表中清理相關記錄,然後我發現錯誤表明列中已經存在列或表中不存在列。謝天謝地,這些都是在測試服務器上完成的,但是在我的現場服務器上解決這個問題有沒有更好的策略? –

+0

你能否告訴我爲什麼我的問題得到否定的答案?我研究了Stack的答案,我閱讀了文檔,並嘗試了幾個小時的解決方案。同樣,我發佈了我可能的最全面的描述。我想做得更好,請通過我的帖子諮詢問題。 –

+0

請參閱更新 – e4c5