Django:迁移表'forum_user'已经存在

mik*_*ike 8 django migrate django-south

我更改了Django模型,并使用Django schemamigration更新数据库.但是,当我这样做时python manager.py migrate app,它会抛出此错误消息:

_mysql_exceptions.OperationalError: (1050, "Table 'forum_user' already exists")
Run Code Online (Sandbox Code Playgroud)

Yuj*_*ita 27

然后,django south尝试创建的表已经存在且与数据库的状态不匹配.

如果这是您第一次迁移,请记住在进行模式迁移更改之前,必须通过设置初始状态schemamigration myapp --initial并将migrate app --fake数据库与南数据库状态匹配.

manage.py convert_to_south myapp 以上作为便利方法也是如此.

开始使用南...

  1. 确保您的django表与您当前的数据库表完全匹配 - 如果您计划添加或删除列,请将其注释掉.
  2. 运行python manage.py schemamigration myapp --initial
  3. 运行python manage.py migrate myapp --fake
  4. 更改您的django模型
  5. 运行python manage.py schemamigration myapp --auto
  6. 运行python manage.py migrate myapp

更新

注意django 1.7+船只有迁移,南方不再使用.

只有两个命令值得注意..

  • manage.py makemigrations(handles --initial)
  • manage.py migrate

由南方作者撰写,人群资助.去django.