Django 1.7 makemigrations将表重命名为None

时间:2015-01-20 19:48:27

标签: python django-1.7 django-migrations

我必须将一些模型从一个应用程序移动到另一个应用程序,然后我按照此答案https://stackoverflow.com/a/26472482/188614的说明进行操作。 基本上,我使用了CreateModel生成的python manage.py makemigrations迁移,将其封装在state_operations内,并使用旧表的名称添加了'db_table'元选项。
一切正常,new_app上的模型正确使用旧表格 但是如果我运行python manage.py makemigrations new_app,它会为每个表创建一个AlterModelTable迁移,并将其重命名为None,如下所示:

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

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

1 个答案:

答案 0 :(得分:5)

我自己就是这个问题。

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

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

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

您需要更新newapp迁移中的选项,如果您未在db_table中设置该值,则要删除Meta值,或者与您在Meta中设置的值相匹配{1}}。