合并的Django南迁移(Consolidating Django South Migrations

2019-08-06 04:52发布

在我的项目的初始阶段,我做了很多改动的车型,因此我已经结束了很多关于我的应用程序生成向南迁移。 是否有可能以巩固他们在睡前我的生产服务器进行迁移,所以我没有像一百万移民为每个应用程序做什么办法? 如果是的话,我将如何去这样做?

Answer 1:

你总是可以删除现有的迁移和创建一个新的“初始”的迁移 。

要做到这一点,你将需要:

  1. 删除迁移文件为您的应用程序(完全删除的文件夹)
  2. 运行./manage.py convert_to_south myapp

这会留下对应于您的应用程序的状态,当前状态的单个迁移。


或者,你可以随时收拾的最新一起迁移:

  1. 删除要合并(仅当它们是最新onces)迁移文件
  2. 运行./manage.py schemamigration myapp

这将创建一个新的迁移,将对应于你删除的迁移。


两者均会容易弄乱你的开发数据库中。



Answer 2:

由于这是一个开发环境,这是我要做的事(使用SQLite,请参阅下面的其他SQL服务器):

  1. 是否所有的变化,让迁移文件堆积起来。 没有提交迁移文件VCS
  2. 完成后,删除所有的新移民文件
  3. 重命名数据库
  4. 运行manage.py迁移。 这将创建数据库结构,因为它是你所做的任何更改之前。
  5. 运行manage.py makemigrations。 这将创建一个反映当前状态所需的迁移
  6. 移回已经具有最终的结构和数据的原始数据库
  7. 提交的文件迁移

当使用“正确”的SQL服务器,只保留两个数据库:生产和开发。 更改项目设置为指向生产数据库,而不是重命名步骤3。此外,你可以跳过第4步。



文章来源: Consolidating Django South Migrations