Django 1.8,syncdb 不工作,抛出外键约束错误
Django 1.8, syncdb not working, throwing a foreign key constraint error
自从我从Django 1.7 升级到1.8 后,我遇到了这个外键约束错误。
File "c:project\env\lib\site-packages\mysql_python-1.2.5-py2.7-win32.egg/MySQLdb\connections.py line 36, in defaulterrorhandler raise errorclass, errorvalue,
Django.db.utils.IntergrityError: 'Cannot add foreing key contraint
django 1.8(最新版本)有什么问题?
试试这个
DATABASES = {
'default': {
...
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
},
'STORAGE_ENGINE': 'MyISAM / INNODB / ETC'
}
}
您是否为所有应用创建了迁移?如果不是,您很可能会遇到数据库表创建顺序错误的问题,这将给您带来此错误。
如果您有一个现有的 Django 1.7 项目,那么您需要创建初始迁移文件,然后伪造初始迁移,如此处所述
https://docs.djangoproject.com/en/1.8/topics/migrations/#adding-migrations-to-apps
使用
创建迁移
$ python manage.py make migrations your_app_label
然后伪造应用程序
$ python manage.py migrate --fake-initial your_app_label
自从我从Django 1.7 升级到1.8 后,我遇到了这个外键约束错误。
File "c:project\env\lib\site-packages\mysql_python-1.2.5-py2.7-win32.egg/MySQLdb\connections.py line 36, in defaulterrorhandler raise errorclass, errorvalue,
Django.db.utils.IntergrityError: 'Cannot add foreing key contraint
django 1.8(最新版本)有什么问题?
试试这个
DATABASES = {
'default': {
...
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
},
'STORAGE_ENGINE': 'MyISAM / INNODB / ETC'
}
}
您是否为所有应用创建了迁移?如果不是,您很可能会遇到数据库表创建顺序错误的问题,这将给您带来此错误。
如果您有一个现有的 Django 1.7 项目,那么您需要创建初始迁移文件,然后伪造初始迁移,如此处所述
https://docs.djangoproject.com/en/1.8/topics/migrations/#adding-migrations-to-apps
使用
创建迁移$ python manage.py make migrations your_app_label
然后伪造应用程序
$ python manage.py migrate --fake-initial your_app_label