如何将多个django南迁移合并为一个迁移

时间:2014-07-25 09:58:50

标签: django-south

我们使用south来管理迁移很长一段时间,现在我们有大约100多次迁移。

它导致很长时间在新数据库上运行python manage.py migrate

我想知道我是否可以将所有现有迁移合并到单个迁移

2 个答案:

答案 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

请参阅official docs

如果您希望摆脱开发过程中产生的所有试验和错误浪费,请删除应用migrations目录中的迁移以及SQL表django_migrations中应用的所有提及和应用程序实际的数据库表。

然后运行./manage.py makemigrations,你很高兴。对于已经投入使用的应用程序,建议不要这样做。