我正在从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")
如何解决这些问题?
我建议手动修改数据库(或从模型中删除字段),直到模型/数据库协调一致。。那么你就可以开始使用South了。
在任何情况下,在开始将数据/表传输到其他数据库引擎之前,都应该清理这些数据/表。