【问题标题】:django, squash migrations, too many circular dependenciesdjango,壁球迁移,太多循环依赖
【发布时间】:2016-05-12 11:30:39
【问题描述】:

我试图压制迁移。

不幸的是,有太多的循环依赖。

有没有办法重新开始迁移(尽管我的项目已经部署在生产环境中)而不是尝试压缩迁移?

我不必担心一些不知名的开发者使用我的项目,因为它是一个私人项目。

【问题讨论】:

    标签: django migrate


    【解决方案1】:

    是的,有办法。见this similar question。总而言之:

    # 1) Fake migrations back to 0
    ./manage.py migrate app zero --fake
    
    # 2) Delete migrations files
    git rm "app/migrations/*"
    
    # 3) Create new migration file
    ./manage.py makemigrations app
    
    # 4) Pretend to run the new migration
    ./manage.py migrate app --fake
    

    【讨论】:

    • 我实际上认为重新开始解决循环依赖关系可能会更加困难。 (这很可能取决于您的迁移历史)。但是是的,这绝对是我操作的答案。
    • 实际上,当存在循环依赖时,上述方法会创建迁移,自动解决循环依赖对吗?
    • 我不确定你所说的循环依赖是什么意思;您是指双向相互依赖的迁移吗?如果是,建议的方法会消除所有迁移,从而消除这种循环依赖。
    • 是的,@eugene,第 3 步中的 makemigrations 命令似乎足够聪明,可以避免它创建的迁移之间的循环依赖。它将为每个应用创建多个迁移以避免循环依赖。
    猜你喜欢
    • 2016-10-09
    • 2012-12-24
    • 2023-04-06
    • 2014-10-07
    • 2020-08-14
    • 2013-07-16
    • 1970-01-01
    • 2015-04-12
    • 2015-07-24
    相关资源
    最近更新 更多