【问题标题】:Django 1.8, syncdb not working, throwing a foreign key constraint errorDjango 1.8,syncdb 不工作,抛出外键约束错误
【发布时间】:2015-04-07 03:15:53
【问题描述】:

自从我从 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(最新版本)有什么问题?

【问题讨论】:

    标签: django syncdb


    【解决方案1】:

    试试这个

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

    【讨论】:

    • 这正是我想要的。像魅力一样工作。
    【解决方案2】:

    您是否为所有应用创建了迁移?如果没有,您很可能会遇到数据库表的创建顺序错误的问题,这会给您带来此错误。

    如果你有一个现有的 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
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2015-06-23
    • 2011-06-12
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多