2016-12-24 139 views
0

我有一個Django項目與多個應用程序,其中許多包含大量的遷移文件。我試圖用squashmigrations命令一次擠壓這些應用程序,但這樣做會導致CircularDepencdyError。 Django文檔here建議打破循環依賴關係中的一個鍵來解決錯誤,但錯誤並未指定此級別的詳細信息。隨着數千行遷移代碼的篩選,我感覺卡住了。Django; squashmigrations和循環依賴

有沒有人有解決這類問題的經驗或知道一些最佳實踐或提示什麼尋找?

+1

如何刪除現有的遷移文件並從頭開始創建它們? – Sebastian

+0

那麼,這工作!似乎很容易成真 - 這樣做有沒有危險? – qmsack

+0

您還必須清空數據庫中的遷移表。如果你可以在你的現場版本上做到這一點,如果你有一個,沒有風險。 – Sebastian

回答

0

所推薦的塞巴斯蒂安,修復這個循環依賴爛攤子:

  • 刪除移民從項目目錄中的文件
  • django_migrations數據庫表中刪除遷移項目
  • 運行makemigrations - Django中創建新的遷移文件
  • 運行migrate --fake因爲您應該已經擁有數據庫中的表格

這樣做後,我能夠得到manage.py test就像一個魅力。