【问题标题】:Django doesn't update sqlite_master upon table renameDjango 在表重命名时不会更新 sqlite_master
【发布时间】:2017-11-08 17:36:21
【问题描述】:

当使用 migrations.AlterModelTable 重命名表时,Django 不更新 sqlite_master 记录是否有原因?

我有一个需要重命名的表,当我运行时:

ALTER TABLE old_name RENAME TO new_name;

所有以 old_name.id 作为外键的表中的 sqlite_master 记录都会正确更新,REFERENCES "old_name" ("id") 变成 REFERENCES "new_name" ("id" )

但是当我在迁移中使用 migrations.AlterModelTable 时不会发生这种情况。

我的代码:

operations = [
    migrations.AlterModelTable(name='Sample', table='new_name'),
]

【问题讨论】:

    标签: django django-models sqlite database-migration


    【解决方案1】:

    这是当前阻止 Django 2.0 发布的错误。

    https://github.com/django/django/pull/9389

    【讨论】:

    • 谢谢。太糟糕了,我想等待更安全。
    • @user2937998 FWIW Django 2.0 已经发布了一段时间,所以你现在应该可以使用它了。
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多