在我的项目的初始阶段,我做了很多改动的车型,因此我已经结束了很多关于我的应用程序生成向南迁移。 是否有可能以巩固他们在睡前我的生产服务器进行迁移,所以我没有像一百万移民为每个应用程序做什么办法? 如果是的话,我将如何去这样做?
Answer 1:
你总是可以删除现有的迁移和创建一个新的“初始”的迁移 。
要做到这一点,你将需要:
- 删除迁移文件为您的应用程序(完全删除的文件夹)
- 运行
./manage.py convert_to_south myapp
这会留下对应于您的应用程序的状态,当前状态的单个迁移。
或者,你可以随时收拾的最新一起迁移:
- 删除要合并(仅当它们是最新onces)迁移文件
- 运行
./manage.py schemamigration myapp
这将创建一个新的迁移,将对应于你删除的迁移。
两者均会容易弄乱你的开发数据库中。
Answer 2:
由于这是一个开发环境,这是我要做的事(使用SQLite,请参阅下面的其他SQL服务器):
- 是否所有的变化,让迁移文件堆积起来。 没有提交迁移文件VCS
- 完成后,删除所有的新移民文件
- 重命名数据库
- 运行manage.py迁移。 这将创建数据库结构,因为它是你所做的任何更改之前。
- 运行manage.py makemigrations。 这将创建一个反映当前状态所需的迁移
- 移回已经具有最终的结构和数据的原始数据库
- 提交的文件迁移
当使用“正确”的SQL服务器,只保留两个数据库:生产和开发。 更改项目设置为指向生产数据库,而不是重命名步骤3。此外,你可以跳过第4步。
文章来源: Consolidating Django South Migrations