簡體   English   中英

Django:遷移依賴於刪除的第三方模塊

[英]Django: Migrations depend on removed 3rd-party module

在我的django項目中,我一直在使用django-taggit為模型添加標記功能。

遷移添加標記還將初始taggit遷移列為依賴項:

dependencies = [
    ('taggit', '0001_initial'),
    # …
]

在以后的某個時間點,我已經刪除各地的taggit ,包括INSTALLED_APPS

問題是django無法解析屬於taggit的遷移,並引發錯誤。

在這種情況下,首選解決方案是什么?

我可以想到一個兩步策略:

  1. taggit保留在INSTALLED_APPS直到運行項目的所有服務器都是最新的
  2. 之后的壁球遷移,以便該字段不再出現,只有從INSTALLED_APPS刪除taggit

那是對的。 請注意,在創建壓縮的遷移之前,您不必等待所有服務器都是最新的。 文檔

這些文件被標記為表示它們取代了先前壓縮的遷移,因此它們可以與舊的遷移文件共存,並且Django將根據您在歷史記錄中的位置智能地在它們之間切換。

對於最后一步,您甚至可以刪除舊的遷移文件,因此在源中的任何位置都不會再提及taggit

然后,您必須通過以下方式將壓縮的遷移轉換為正常的初始遷移:

  • 刪除它替換的所有遷移文件

  • 刪除壓縮遷移的Migration類中的替換參數(這是Django告訴它是一個被壓扁的遷移的方式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM