南方的migrate命令导致此错误:表“model_name”已存在

时间:2012-02-20 09:08:36

标签: python django

我有一个名为HubHub的项目,其中包含2个名为DrHubAgencyHub的应用,在更改模型时,syncdb不会更改它们,我尝试使用south: 在settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'grappelli',
    'django.contrib.admin',
    'south',
    'AgencyHub',
    'DrHub',
)

我运行了第一个命令来配置基于本教程的第一次迁移:http://south.aeracode.org/docs/tutorial/part1.html

python manage.py schemamigration DrHub --initial

和第二个命令:

python manage.py migrate DrHub

但是此命令导致此错误:

table "model_name" already exist

“model_name”是models.py

DrHub的第一个模型的名称

如果您找到任何解决方案,请回复。

提前致谢

2 个答案:

答案 0 :(得分:3)

这是因为初始迁移将为您创建数据库中的所有表。并且您有一个包含现有表的现有数据库。您可以擦除数据库然后执行迁移,也可以在迁移中使用--fake选项。文档here

python manage.py migrate DrHub --fake

答案 1 :(得分:0)

请删除数据库表并尝试创建sync db。