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

Qua*_*ong 7 django-south

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

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

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

Njo*_*bau 8

这已在Django中解决了1.7 +有一个新的管理命令./manage.py squashmigrations appname,请查看此链接 - https://docs.djangoproject.com/en/1.7/topics/migrations/#squashing-migrations


小智 5

您可以使用squashmigrations管理命令到达那里。它将保留旧的迁移文件,但在安装新内容时使用压缩版本。

例子:

./manage.py squashmigrations core 0003_auto
Run Code Online (Sandbox Code Playgroud)

查看官方文档

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

然后跑./manage.py makemigrations,你就可以走了。对于已经投入生产使用的应用程序,不建议这样做。