您如何在非主分支上干净地维护 Django 迁移?

Dou*_*haw 5 git django django-migrations

  1. 想象一下,我有一个有迁移的分支。这是一个与 master 保持同步的实验分支,但暂时不会合并到 master 中,如果有的话。
  2. 主迁移随时间变化。
  3. 结果是,当我在 master 中合并时,我最终会出现多个迁移叶,这意味着 manage.py 迁移错误。如果我只是这样做manage.py makemigrations --merge,那么它会创建一个新的叶子,以后也会过时。

有没有很好的方法来处理这个问题?我很想避免在长期依赖的分支中进行任何迁移。

Max*_*ysh 3

  1. 在合并之前,在 master 之上重新建立一个实验分支。
  2. 取消应用实验分支中的所有迁移:

    manage.py migrate <appname> <previousMigration> 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从实验分支中删除所有迁移。

  4. 创建一个全新的迁移:

    manage.py makemigrations
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将更改提交到实验分支

  6. 合并实验分支。

如果没有其他人应用迁移,那么从存储库中删除迁移是完全安全的。

  • 虽然很有帮助,但需要注意的是,只有自动生成所有迁移内容时,这才有效。如果您的实验分支上的任何迁移包含 - 例如 - `migrations.RunPython` 操作,它们将不会被重新创建。 (2认同)