我必须将一些模型从一个应用程序移动到另一个应用程序,然后我按照此答案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,
),
这是一个错误,还是预期的行为?
答案 0 :(得分:5)
我自己就是这个问题。
您所关注的答案包括new_app
中的迁移:
options={
'db_table': 'newapp_themodel',
},
此选项dict应反映模型上Meta
类设置的值。就我而言,我没有在Meta中设置db_table
,而是盲目地复制了选项代码。
您需要更新newapp
迁移中的选项,如果您未在db_table
中设置该值,则要删除Meta
值,或者与您在Meta
中设置的值相匹配{1}}。