Django 1.7 makemigrations 将表重命名为 None
Posted
技术标签:
【中文标题】Django 1.7 makemigrations 将表重命名为 None【英文标题】:Django 1.7 makemigrations renaming tables to None 【发布时间】:2015-03-19 04:31:27 【问题描述】:我不得不将几个模型从一个应用程序移动到另一个应用程序,我按照这个答案https://***.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,
),
这是一个错误,还是预期的行为?
【问题讨论】:
【参考方案1】:我自己也遇到过这个问题。
您所关注的答案包含在new_app
的迁移中:
options=
'db_table': 'newapp_themodel',
,
此选项字典应反映模型上 Meta
类设置的值。就我而言,我没有在 Meta 中设置db_table
,而是盲目地复制了选项代码。
如果您未在 Meta
中设置 db_table
值,则您需要更新迁移中的选项newapp
或匹配您在 Meta
中设置的值。
【讨论】:
以上是关于Django 1.7 makemigrations 将表重命名为 None的主要内容,如果未能解决你的问题,请参考以下文章
makemigrations 和升级到 Django 1.7 的问题
Django 1.7 makemigrations 将表重命名为 None
Heroku 上的 Django 1.7:如何让 makemigrations 重新扫描数据库?