【问题标题】:South skip broken migrations南跳过破碎的迁徙
【发布时间】:2013-06-15 23:07:01
【问题描述】:

我在我的 django 应用程序中使用 3rd 方应用程序,它的旧版本依赖于 django auth 模型,但新版本支持 django 1.5 的自定义 auth 模型。 我遇到的问题是,当我安装应用程序并迁移应用程序时,它会在迁移 002 上中断,因为它引用了应用程序的最终版本不需要的表,因此我没有。 如果我关闭 South 并只做一个 syncdb 一切正常。但随后我将不得不为我的所有其他应用程序进行虚假迁移。有没有一种简单的方法可以让南跳过这些错误并继续进行迁移,或者南只使用 models.py 创建架构,然后让我为那个应用程序进行假迁移?

感谢您的帮助:)

【问题讨论】:

    标签: python django django-south


    【解决方案1】:

    我最终这样做了

    SOUTH_MIGRATION_MODULES = { 'app_with_broken_migration':'ignore'}
    

    然后运行syncdb

    然后删除忽略迁移行并运行

    manage.py migrate app_with_broken_migration --fake
    

    【讨论】:

      【解决方案2】:

      我通常会对失败的迁移脚本进行临时修改。注释掉或修改不需要的部分,运行迁移,然后将所有内容恢复到以前的方式。

      这并不理想,并且涉及一些重复工作 - 您必须在开发机器和服务器上执行相同的步骤,但它可以让您保留 South 支持并解决失败的迁移。

      【讨论】:

      • 问题在于,我正在为这个包进行 pip 安装。我在生产站点上使用 Heroku,它只是根据需求文件安装所有内容。这将使在生产中很难做到这一点......
      猜你喜欢
      • 2012-02-21
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多