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

前端之家收集整理的这篇文章主要介绍了在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

成功!

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

猜你在找的Python相关文章