Django南迁移不一致

时间:2015-08-11 14:33:15

标签: python django django-south django-migrations

我目前在我的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

1 个答案:

答案 0 :(得分:0)

这是一个棘手的情况,但幸运的是,所有迁移都是自动生成的。这取决于您希望如何处理迁移。如果您只关心最终结果,只需在0209之后手动删除所有迁移,然后运行./manage.py schemamigration <app-name>,它就会将所有更改合并到一个迁移文件中,但显然您会忘记迁移历史记录。如果要保留每次迁移的内容,没有好办法,只能尝试按照每次迁移的步骤进行操作,并相应地更改模型,这既费时又容易出错。

我建议在部署开始时使用一个进程来检查重复的迁移文件。如果迁移失败可能会很危险。