【问题标题】:Cannot use South to migrate because models and DB differ无法使用 South 迁移,因为模型和数据库不同
【发布时间】:2012-08-02 10:44:16
【问题描述】:

由于我在使用 South 和 MySQL 时遇到的所有问题,我正在从 MySQL 切换到 Postgres,但我什至无法完成这个过程。

现在我的数据库处于混乱状态。我的 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")

我该如何解决这些问题?

【问题讨论】:

    标签: python mysql django django-south


    【解决方案1】:

    我建议您手动修改您的数据库(或从模型中删除字段),直到您的模型/数据库协调一致。然后您可以开始使用 South。

    在任何情况下,您都应该在开始将数据/表传输到不同的数据库引擎之前清理它们。

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 2014-01-03
      • 2014-01-29
      • 2014-08-11
      • 1970-01-01
      • 2011-06-29
      • 2012-05-19
      • 2012-06-14
      • 2012-12-18
      相关资源
      最近更新 更多