django - 压缩 django 迁移的最佳方法

标签 django django-models django-rest-framework django-migrations

我有 10 次迁移,我想将它们保存在一个文件中。所以我使用 ./manage.py squashmigrations account 来挤压它们。现在我有11 个文件,包括init 和squash 文件。所以我删除了其他 9 个文件并保留 init 和 squash 并运行 migrationmigrate

现在想问这是正确的方法吗?我有另一个具有相同场景的应用程序,我应该这样做吗?

最佳答案

是的,这基本上就是这样做的方法:) Django 有一个关于如何压缩迁移和适当的工作流程的很棒的文档。请参阅https://docs.djangoproject.com/en/3.1/topics/migrations/#migration-squashing

简而言之,

  1. 创建一个 squash 迁移并将其添加到您的其他迁移中
  2. 将所有当前迁移应用到您的环境后,您可以像以前一样删除旧文件。

但此外,你应该

  • 确保引用已删除迁移的其他应用已更新,以链接到新的 squash 迁移文件
  • 删除挤压迁移中的replaces属性,以便将其视为普通迁移(而不再是挤压迁移)
  • 然后您就完成了,您可以对其他应用程序重复此过程,一旦再次积累了更多迁移,就可以再次使用相同的应用程序。

    关于django - 压缩 django 迁移的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64091645/

    相关文章:

    Django 代理模型权限不出现

    python - Django Rest Framework 嵌套序列化器对象为 null

    python - 在 Django 中序列化一对一关系

    python - Django - 可怕的 'iteration over non-sequence'

    python - Django 与 Heroku 上的 PostgreSQL 应用程序不同步

    Django 1.8 迁移 : django_content_type does not exist

    django-rest-framework - 从 Django rest 框架中的访问 token 获取用户详细信息 - 简单的 JWT

    python Bokeh 单元测试

    django - 多个 Django 应用程序应如何相互通信?

    python - 数据库中缺少字段但存在于 Django 模型中