在Django-South:
我改变了我已成功运行myapp的初始迁移但出于某种原因,在我对模型进行了更改并转到
我改变了我已成功运行myapp的初始迁移但出于某种原因,在我对模型进行了更改并转到
./manage.py schemamigration myapp --auto ./manage.py migrate myapp
我得到了很多追溯结束:
(1050,"Table 'my_table' already exists")
经过大量的谷歌搜索,我发现并尝试了这个:
./manage.py migrate myapp --fake
然后我继续迁移它,但无济于事;同样的错误.
有什么建议?
解决方法
我刚刚得到同样的错误,并通过搜索找到了这个问题.
我的问题是我使用–initial标志创建的第二次迁移,即
$./manage.py startapp foo $./manage.py schemamigration --initial foo $./manage.py migrate foo
…对foo做一些改变……
$./manage.py schemamigration --initial foo
(哎呀!)
$./manage.py migrate foo
…我收到错误,迁移失败,因为在第二次迁移中,South正在尝试创建已创建的表.
解
在我的迁移文件夹中:
$ls foo/migrations 0001_initial.py 0002_initial.py
删除第二次迁移并使用正确的–auto标志重新导出第二次迁移:
$rm foo/migrations/0002_initial.py $./manage.py schemamigration --auto foo $./manage.py migrate foo
成功!
可能有其他事情导致此错误,但那是我的坏事!