2015-04-07 55 views
2

由於我從1.7升級到Django 1.8,我得到了這個外鍵約束錯誤。Django 1.8,syncdb不工作,拋出一個外鍵約束錯誤

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(最新版本)?

回答

2

試試這個

DATABASES = { 
'default': { 
    ...   
    'OPTIONS': { 
     "init_command": "SET foreign_key_checks = 0;", 
    }, 
    'STORAGE_ENGINE': 'MyISAM/INNODB/ETC' 
} 
} 
+0

是的,它工作。謝謝。 – user2307087

+0

這正是我所期待的。奇蹟般有效。 –

0

您是否製作了所有的應用程序遷移?如果不是這樣,你可能會遇到數據庫表的創建順序錯誤的問題,這會給你這個錯誤。

如果你有一個現有的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 
+0

哦,你不應該在Django 1.8中使用syncdb;它已被新的遷移代碼所取代。詳情請參閱https://docs.djangoproject.com/en/1.8/topics/migrations。 – Rachel