删除表后的模式迁移

时间:2014-07-02 16:13:10

标签: python django django-south

我在我的models.py添加了一个列,它给了我一些问题。在试图解决问题的道路上,我做了几件事。

  1. 放弃了表格./manage.py sqlclear app | ./manage.py dbshell
  2. 试图"重置"架构./manage.py schemamigration app --initial
  3. 尝试迁移./manage.py migrate app
  4. 完成所有这些操作后,尝试迁移后出现此错误:

    FATAL ERROR - The following SQL query failed: CREATE TABLE "projects_project" ("id" integer NOT NULL PRIMARY KEY)
    The error was: table "projects_project" already exists
    

    问题:如何修复我的数据库?我不关心数据库中的任何数据。

    修改

    其中一篇相关帖子将我带到了这个链接Django South - table already exists。显然,如果你假装迁移一切都很好。

    ./manage.py migrate myapp --fake
    

    我仍然不确定所有的重复文件,但我想这就是文档的用途。

1 个答案:

答案 0 :(得分:0)

Welll,错误指出非常清楚:

table "projects_project" already exists

你可以快速而肮脏的方式去掉桌子。在这种情况下,登录您的DMBS。如果它是MySQL,你只需打开终端并打字:

mysql -u root -p YOURPASSWORD

然后选择数据库:

use your_database;

最后,放下桌子:

DROP TABLE projects_project;

您现在应该可以迁移了。 优雅的方法是撤消迁移。但是每个框架都有自己的方法来做到这一点。你需要先弄明白 - 或者给我们更多的信息。