我有 10 次迁移,我想将它们保存在一个文件中。所以我使用 ./manage.py squashmigrations account
来挤压它们。现在我有11 个文件,包括init 和squash 文件。所以我删除了其他 9 个文件并保留 init 和 squash 并运行 migration
和 migrate
。
现在想问这是正确的方法吗?我有另一个具有相同场景的应用程序,我应该这样做吗?
最佳答案
是的,这基本上就是这样做的方法:) Django 有一个关于如何压缩迁移和适当的工作流程的很棒的文档。请参阅https://docs.djangoproject.com/en/3.1/topics/migrations/#migration-squashing
简而言之,
- 创建一个 squash 迁移并将其添加到您的其他迁移中
- 将所有当前迁移应用到您的环境后,您可以像以前一样删除旧文件。
但此外,你应该
- 确保引用已删除迁移的其他应用已更新,以链接到新的 squash 迁移文件
- 删除挤压迁移中的
replaces
属性,以便将其视为普通迁移(而不再是挤压迁移)
然后您就完成了,您可以对其他应用程序重复此过程,一旦再次积累了更多迁移,就可以再次使用相同的应用程序。
关于django - 压缩 django 迁移的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64091645/