由于型号和DB不同,无法使用South进行迁移

时间:2012-08-04 20:20:56

标签: python mysql django django-south

我正在从MySQL切换到Postgres,因为我在使用South和MySQL时遇到了所有麻烦,但我甚至无法完成此过程。

现在我的数据库处于混乱状态。我的main / models.py有其他字段,数据库没有列,所以我尝试使用South迁移它们,但是我收到了错误。

这是我试图做的事情:

python2.7 manage.py dumpdata --indent=4 > dump.js

我收到此错误:

django.db.utils.DatabaseError: (1146, "Table 'kelp_goals.main_actionstep' doesn't exist")

我收到错误,因为actionstep作为mains / models.py中的模型存在,但该表实际上并不存在于数据库中。

我执行以下操作尝试创建actionstep列:

python2.7 manage.py schemamigration main --auto
python2.7 manage.py migrate main

然后,我收到了这个错误:

_mysql_exceptions.OperationalError: (1050, "Table 'main_goal' already exists")

如何解决这些问题?

1 个答案:

答案 0 :(得分:1)

我建议手动修改数据库(或从模型中删除字段),直到你拥有和谐的模型/数据库。然后你可以开始使用South。

在任何情况下,您应该在开始将数据/表转移到其他数据库引擎之前清理它们。