Django 1.7 makemigrations将表重命名为None

Die*_*ano 6 python django-1.7 django-migrations

我不得不将一些模型从一个应用程序移动到另一个应用程序,我按照这个答案的说明/sf/answers/1853073771/.
基本上我使用了CreateModel生成的迁移python manage.py makemigrations,将它们包装在内部state_operations,并'db_table'使用旧表的名称添加了meta选项.
一切正常,其上的模型new_app正确使用旧表.
但是如果我运行python manage.py makemigrations new_app它会AlterModelTable为每个表创建一个迁移,将它们重命名为None,如下所示:

migrations.AlterModelTable(
    name='cidade',
    table=None,
),
Run Code Online (Sandbox Code Playgroud)

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

小智 5

我自己就是这个问题.

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

options={
    'db_table': 'newapp_themodel',
},
Run Code Online (Sandbox Code Playgroud)

此选项dict应反映Meta模型中类设置的值.在我的情况下,我没有设置db_tableMeta,但盲目地复制了选项代码.

您需要更新迁移中的选项,以便newappdb_table未设置值时删除该值,Meta或者与您设置的值匹配Meta.