django schemamigration创建相同的迁移更改

时间:2013-06-13 10:22:25

标签: django django-south migrate

我搞砸了从多个git分支合并模式迁移。

基本上,所有更改都应用于DB,但是当我这样做时

python manage.py schemamigration my_app --auto 

它为最近应用的所有更改重新创建迁移文件。

我该如何解决这个问题?

(我试图在结合分支并运行--delete-ghost-migrations并重播它们时聪明一点......而不理解我在做什么):(

2 个答案:

答案 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,然后失败。

我通过手动修改迁移文件的内容来解决问题。

相关问题