我目前在我的django应用程序中遇到了一些南迁移的问题。在进行代码合并之后,我遇到了一些具有相同索引的迁移。我已经成功地将迁移转回到第一个重复迁移号码之前。
(*) 0209_auto__add_field_product_subtitle
( ) 0210_auto__add_field_invoice_shipping_cost
( ) 0210_auto__add_reminderemailmessage__add_unique_reminderemailmessage_produc
( ) 0211_auto__add_cmecredits
( ) 0211_auto__chg_field_reminderemailmessage_product_package
( ) 0212_auto__add_field_test_credit_limit_override
( ) 0212_auto__chg_field_reminderemailmessage_product_package
我只是想知道解决此问题的最佳方法是什么,因为在尝试将其部署到开发服务器时,我收到以下错误。
! Migration decker:0211_auto__add_cmecredits should not have been applied before decker:0210_auto__add_reminderemailmessage__add_unique_reminderemailmessage_produc but was
答案 0 :(得分:0)
这是一个棘手的情况,但幸运的是,所有迁移都是自动生成的。这取决于您希望如何处理迁移。如果您只关心最终结果,只需在0209
之后手动删除所有迁移,然后运行./manage.py schemamigration <app-name>
,它就会将所有更改合并到一个迁移文件中,但显然您会忘记迁移历史记录。如果要保留每次迁移的内容,没有好办法,只能尝试按照每次迁移的步骤进行操作,并相应地更改模型,这既费时又容易出错。
我建议在部署开始时使用一个进程来检查重复的迁移文件。如果迁移失败可能会很危险。