压缩迁移 django 的最佳方法
Posted
技术标签:
【中文标题】压缩迁移 django 的最佳方法【英文标题】:Best way to squash migrations django 【发布时间】:2021-01-13 09:56:37 【问题描述】:我有 10 次迁移,我想将它们保存在一个文件中。所以我使用 ./manage.py squashmigrations accounts
将它们压扁。现在我有 11 个文件,包括 init 和 squash 文件。所以我删除了其他 9 个文件并保留了 init 和 squash 并运行 migration
和 migrate
。
现在想问这是正确的方法吗?我有另一个应用程序具有相同的场景我应该这样做吗?
【问题讨论】:
【参考方案1】:是的,这基本上就是这样做的方法:) Django 有一个关于如何压缩迁移和适当工作流的很好的文档。见https://docs.djangoproject.com/en/3.1/topics/migrations/#migration-squashing
总之,
-
创建一个 squash 迁移并将其添加到您的其他迁移中
将所有当前迁移应用到您的环境后,您可以照常删除旧文件。
但另外,你应该
-
确保引用已删除迁移的其他应用已更新以链接到您的新 squash 迁移文件
删除 squash 迁移中的
replaces
属性,以便将其视为普通迁移(不再是 squash 迁移)
然后你就完成了,你可以对其他应用重复这个过程,再次累积一次迁移。
【讨论】:
以上是关于压缩迁移 django 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
将文件夹和文件结构从 django 1.3 迁移到 django 1.4 的最佳方法是啥?
在独立的 Django 应用程序中进行新迁移的最佳方法是啥?