【问题标题】:Django 1.7 makemigrations renaming tables to NoneDjango 1.7 makemigrations 将表重命名为 None
【发布时间】:2015-03-19 04:31:27
【问题描述】:

我不得不将几个模型从一个应用程序移动到另一个应用程序,我按照这个答案https://stackoverflow.com/a/26472482/188614 的说明进行操作。
基本上我使用了python manage.py makemigrations 生成的CreateModel 迁移,将它们包裹在state_operations 中,并添加了带有旧表名称的'db_table' 元选项。
一切正常,new_app 上的模型正确地使用旧表。
但如果我运行python manage.py makemigrations new_app,它会为每个表创建一个AlterModelTable 迁移,将它们重命名为None,如下所示:

migrations.AlterModelTable(
    name='cidade',
    table=None,
),

这是一个错误,还是预期的行为?

【问题讨论】:

    标签: python django-1.7 django-migrations


    【解决方案1】:

    我自己也遇到过这个问题。

    您所关注的答案包含在new_app 的迁移中:

    options={
        'db_table': 'newapp_themodel',
    },
    

    此选项字典应反映模型上 Meta 类设置的值。就我而言,我没有在 Meta 中设置db_table,而是盲目地复制了选项代码。

    如果您未在 Meta 中设置 db_table 值,则您需要更新迁移中的选项newapp 或匹配您在 Meta 中设置的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-18
      • 2015-02-28
      • 2014-09-14
      • 2015-05-12
      • 2015-09-21
      • 2014-11-19
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多