我有一个模型定义了自己的主键 . 我删除了这个主键,South然后在schemamigration / migrate中正确添加了默认的Django“id”键 .
在尝试创建模型的实例时(通过管理界面或其他方式),我得到:
NOT NULL constraint failed: app_myModel.id
迁移中的转发方法说:
db.add_column(u'app_myModel', u'id',
self.gf('django.db.models.fields.AutoField')(default=1, primary_key=True),
keep_default=False)
但架构(sqlite3)是:
"id" integer NOT NULL);
对我来说,这看起来不像是AUTOINCREMENT字段 . 不确定如何通过迁移恢复这一点,并且如果它发生在那里,我真的不想要任何我在 生产环境 中无法做到的事情 .
发生了什么?有什么问题?
提前致谢 .
1 回答
看起来它一定是南方的一个错误,修复它,我做了以下几点:
回到0004,问题出在0006
已删除0006
Ran ./manage schemamigration app --auto --update,更新0005
迁移到0005
该表是用0005制作的,不知道这是否有意义 . 您可能需要向后迁移到创建表的迁移,然后更新该迁移,以便它可以正确检测架构 . 引用South的主要作者Andrew Godwin,讨论南方的主键:
看来作者已经意识到了这些问题 .