如何在django 1.9+中合并连续的数据库迁移?

时间:2016-04-09 19:59:38

标签: django django-migrations

迁移允许在保持数据库中的当前数据的同时从一个数据库模式转换为另一个数据库模式。 Django允许使用命令python manage.py makemigrations

创建迁移

每次运行makemigrations时,系统会根据000n..文件中检测到的更改添加新的迁移文件models.py

有时在对models.py进行少量更改之后,我想运行makemigrations但不希望创建新的迁移,因为以前的迁移还没有被使用,这允许它们合并在一起,主要是因为当数据库中存在大量数据时,在生产中运行每个迁移可能会花费大量时间,因此可能更好地合并迁移。

是否有办法允许新迁移 000n .. 与现有迁移 000(n-1).. 合并?

1 个答案:

答案 0 :(得分:1)

  

我想运行makemigrations但不希望新迁移   因为先前的迁移尚未使用而创建

这不是问题,Django从上到下运行迁移,这意味着:您的最新迁移文件将等到其他先前的迁移文件运行。

  

因为在生产中运行每个迁移可能会花费很多时间   当数据库中有大量数据时

您在数据库中拥有多少数据?如果真的很多,那么您必须已经拥有复制和冗余数据库服务器。在这种情况下,将读取和写入切换为一个,例如从服务器,在主服务器中运行迁移。然后将流量切换回master,在此之前确保它们之间的延迟为0并且新模式在它们之间正确复制