在Django-South中,Pesky“Table’my_table’已经存在”

在Django-South:

我改变了我已成功运行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

成功!

可能有其他事情导致此错误,但那是我的坏事!

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。