【发布时间】:2016-05-12 11:30:39
【问题描述】:
我试图压制迁移。
不幸的是,有太多的循环依赖。
有没有办法重新开始迁移(尽管我的项目已经部署在生产环境中)而不是尝试压缩迁移?
我不必担心一些不知名的开发者使用我的项目,因为它是一个私人项目。
【问题讨论】:
我试图压制迁移。
不幸的是,有太多的循环依赖。
有没有办法重新开始迁移(尽管我的项目已经部署在生产环境中)而不是尝试压缩迁移?
我不必担心一些不知名的开发者使用我的项目,因为它是一个私人项目。
【问题讨论】:
是的,有办法。见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
【讨论】:
makemigrations 命令似乎足够聪明,可以避免它创建的迁移之间的循环依赖。它将为每个应用创建多个迁移以避免循环依赖。