[英]Django: Migrations depend on removed 3rd-party module
在我的django項目中,我一直在使用django-taggit為模型添加標記功能。
遷移添加標記還將初始taggit遷移列為依賴項:
dependencies = [
('taggit', '0001_initial'),
# …
]
在以后的某個時間點,我已經刪除了各地的taggit ,包括INSTALLED_APPS
。
問題是django無法解析屬於taggit的遷移,並引發錯誤。
在這種情況下,首選解決方案是什么?
我可以想到一個兩步策略:
INSTALLED_APPS
直到運行項目的所有服務器都是最新的 INSTALLED_APPS
刪除taggit 那是對的。 請注意,在創建壓縮的遷移之前,您不必等待所有服務器都是最新的。 從文檔 :
這些文件被標記為表示它們取代了先前壓縮的遷移,因此它們可以與舊的遷移文件共存,並且Django將根據您在歷史記錄中的位置智能地在它們之間切換。
對於最后一步,您甚至可以刪除舊的遷移文件,因此在源中的任何位置都不會再提及taggit
:
然后,您必須通過以下方式將壓縮的遷移轉換為正常的初始遷移:
刪除它替換的所有遷移文件
刪除壓縮遷移的Migration類中的替換參數(這是Django告訴它是一個被壓扁的遷移的方式)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.