压缩迁移的最佳方式django



我有10次迁移,我想把它们保存在一个文件中。所以我用./manage.py squashmigrations accounts压制它们。现在,我有11个文件,包括init和南瓜文件。所以我删除了另外9个文件,并保留了init和crush并运行了migrationmigrate

现在想问一下这是正确的方式吗?我有另一个应用程序有同样的场景,我应该对它做同样的处理吗?

是的,基本上就是这样做的:(Django有关于如何压缩迁移和适当的工作流程的优秀文档。看见https://docs.djangoproject.com/en/3.1/topics/migrations/#migration-压扁

简而言之,

  1. 创建一个挤压迁移并将其添加到其他迁移中
  2. 一旦将所有当前迁移应用到环境中,就可以像以前一样删除旧文件

但是另外,你应该

  1. 确保引用已删除迁移的其他应用程序已更新,以链接到您的新南瓜迁移文件
  2. 删除南瓜迁移内部的replaces属性,以便将其视为普通迁移(不再是南瓜迁移(

然后您就完成了,您可以对其他应用程序重复该过程,再次累积相同的迁移。

最新更新