我有一个定义了自己的主键的模型。我删除了这个主键,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字段。不确定如何通过迁移来恢复这一点,并且如果它发生在那里,我真的不想要任何我在生产中无法做到的事情。
发生了什么事?有什么问题?
提前致谢。
答案 0 :(得分:1)
似乎它一定是南方的一个错误,为了修复它,我做了以下几点:
该表是用0005制作的,不知道这是否有意义。您可能需要向后迁移到创建表的迁移,然后更新该迁移,以便它可以正确检测架构。引用South的主要作者Andrew Godwin,讨论南方的主键:
......代码库让几个成年人感动得流泪
作者似乎意识到了这些问题。