我们使用south来管理迁移很长一段时间,现在我们有大约100多次迁移。
它导致很长时间在新数据库上运行python manage.py migrate
。
我想知道我是否可以将所有现有迁移合并到单个迁移
答案 0 :(得分:8)
这已经在Django中解决了1.7 +有一个新的管理命令./manage.py squashmigrations appname,查看此链接 - https://docs.djangoproject.com/en/1.7/topics/migrations/#squashing-migrations
答案 1 :(得分:4)
您可以使用squashmigrations
管理命令来实现目标。它将保留旧的迁移文件,但在安装新内容时使用压缩版本。
示例:
./manage.py squashmigrations core 0003_auto
如果您希望摆脱开发过程中产生的所有试验和错误浪费,请删除应用migrations
目录中的迁移以及SQL表django_migrations
中应用的所有提及和应用程序实际的数据库表。
然后运行./manage.py makemigrations
,你很高兴。对于已经投入使用的应用程序,建议不要这样做。