【发布时间】:2014-01-31 21:22:24
【问题描述】:
我有一个定义了自己的主键的模型。我删除了这个主键,South 然后在 schemamigration/migrate 中正确地添加了默认的 Django“id”键。
在尝试创建模型实例时(通过管理界面或其他方式),我得到:
NOT NULL constraint failed: app_myModel.id
迁移中的 forwards 方法说:
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 字段。不知道如何通过迁移来恢复它,如果它发生在那里,我真的不想做任何我在生产中无法做的事情。
发生了什么事?解决方法是什么?
提前致谢。
【问题讨论】:
-
一直在阅读论坛,看来 South 在处理 PK 方面确实很糟糕,尤其是在删除一个并添加另一个时。这很奇怪,因为迁移似乎将 SQL 生成委托给 Django 的 ORM ...
标签: django django-south