我搞砸了从多个git分支合并模式迁移。
基本上,所有更改都应用于DB,但是当我这样做时
python manage.py schemamigration my_app --auto
它为最近应用的所有更改重新创建迁移文件。
我该如何解决这个问题?
(我试图在结合分支并运行--delete-ghost-migrations并重播它们时聪明一点......而不理解我在做什么):(
答案 0 :(得分:3)
尝试:
python manage.py迁移your_app_name
确保您没有在迁移中已经没有的变更
而不是:
python manage.py schemamigration --empty your_app_name name_of_migration
将进行空迁移,但其中包含最新信息。
答案 1 :(得分:1)
这就是我认为发生的事情。
我有一个分支,我从上游/主人分支。
这没有我在本地git仓库中的数据库架构更改
我在这个分支上工作并合并到我当地的分支机构。
现在,合并分支中的迁移文件在迁移文件中没有最新的架构更改。 (是的,它认为是DB的当前状态,并将其与我的models.py文件进行比较。这是解决问题的关键。)
以下是发生的事情的简化视图。
<00> 003 - 在当地分行进行的变更
004 - 在分支(来自上游/主站)中进行的更改,并且没有在003中引入更改
当我运行schemamigration时,它会创建
005 - 重新应用003中的更改
并运行migrate,然后失败。
我通过手动修改迁移文件的内容来解决问题。