python - 迁移后的 Django South 迁移从初始开始

标签 python django django-south

我在银行应用程序中的模型中添加了字段,运行 python manage.py schemamigrationbanks --auto 生成正确的迁移,但迁移后,不知道为什么 South 从初始迁移开始。

python manage.py migrate banks
Running migrations for banks:
- Migrating forwards to 0038_auto__add_field_offer_description.
> banks:0001_initial
FATAL ERROR - The following SQL query failed: CREATE TABLE `banks_lendingtarget` (`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY, `name` varchar(255) NOT NULL UNIQUE)
The error was: (1050, "Table 'banks_lendingtarget' already exists")

即使我开始使用指定的迁移名称进行迁移,例如:

python manage.py migrate banks 0038_auto__add_field_offer_description

有同样的错误,我的问题是:为什么?

我认为最近向我的应用程序添加了initial_data.json 可能会导致此问题,但重命名后没有任何变化。你们有人有同样的情况吗?感谢您的帮助。

最佳答案

假设您使用的是 South 0.8 左右以及 Django 1.6 或更低版本:

如果不了解有关数据库历史记录和 South 使用情况的更多信息,我无法解释为什么会发生这种情况,但为了帮助诊断问题,您可以手动检查数据库中的 South 迁移历史表。

但是,无论您发现什么,补救措施可能都是相同的:您可以“伪造”迁移并跳到迁移历史记录中的正确位置。

尝试python manage.py migratebanks 0037 --fake。这将带您进入 0038 迁移之前,而无需实际尝试创建表。当然,这假设 0037 是成功应用于您的数据库的最新迁移。

关于python - 迁移后的 Django South 迁移从初始开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515430/

相关文章:

python - Keras:我到底需要改变哪些维度?

python - 它在哪里被视为一个整数?

python - 为 Django 项目导入设置

python - 为所有应用程序运行南迁移

mysql - 无法安装 django-activity-stream 数据库表

python - 如何在Django orm中执行子查询?

python - 使用pycharm从windows主机远程调试python到windows guest

python - 使用 Amazon s3 时 Django ImageField url 变慢

Django:如何区分AJAX POST请求?

django - 如何将 Django South 与从 egg 加载的第三方应用程序一起使用?