django、挤压迁移、太多循环依赖

django、挤压迁移、太多循环依赖,django,migrate,Django,Migrate,我试图压制迁移 不幸的是,有太多的循环依赖关系 除了尝试挤压迁移,还有什么方法可以重新开始迁移(尽管我的项目已经在生产中部署了) 我不必担心一些不知名的开发人员使用我的项目,因为这是一个私人项目。是的,有一种方法。看见在Nussell中: # 1) Fake migrations back to 0 ./manage.py migrate app zero --fake # 2) Delete migrations files git rm "app/migrations/*" # 3) C

我试图压制迁移

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

除了尝试挤压迁移,还有什么方法可以重新开始迁移(尽管我的项目已经在生产中部署了)

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

是的,有一种方法。看见在Nussell中:

# 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

实际上,我认为重新开始解决循环依赖关系可能会更困难。(这很可能取决于您的迁移历史)。但这肯定是我的op的答案。事实上,当存在循环依赖时,上述方法将创建自动解决循环依赖的迁移,对吗?我不确定你所说的循环依赖是什么意思;您是指在两个方面都相互依赖的迁移吗?如果是,建议的方法将消除所有迁移,从而也消除这种循环依赖关系。是的,@eugene,步骤3中的
makemigrations
命令似乎足够聪明,可以避免它创建的迁移之间的循环依赖关系。它将为每个应用程序创建多个迁移,以避免循环依赖关系。我猜,如果您在团队项目中继续使用此方法,您必须告诉所有人并确保他们遵循这些步骤(或者为此特定提交编写git挂钩)。