自从mysql升级,以及使用mariaDB以来,很多不曾更新django中model的外键,

今天,按以前的思路写完外键之后,

migrate命令报错:

1005 - Can't create table `xxxDB`.`#sql-1_407` (errno: 150 "Foreign key constraint is incorrectly formed")

很郁闷,跟踪到mysql的日志:

SHOW ENGINE INNODB STATUS; 

------------------------
LATEST FOREIGN KEY ERROR
------------------------
2019-06-06 01:52:21 0x7f27202bf700 Error in foreign key constraint of table `xxxDB`.`cmdb_jiraworkflow`:
Alter table `xxxDB`.`cmdb_jiraworkflow` with foreign key constraint failed. Referenced table `xxxDB`.`cmdb_env` not found in the data dictionary near ' FOREIGN KEY (`env_name_id`) REFERENCES `cmdb_env` (`id`)'.

Referenced table not found in the data dictionary near ' FOREIGN KEY REFERENCES .

眼睛绿了,以写django写法有错,改了N次无果。

网上查了N多方案,没有对应我这个的。

最后,想起来了MYSQL升级的事端,以前的存储引擎都是MYISAM,更改为INNODB试试?

https://www.cnblogs.com/abeli/p/6533662.html

https://www.cnblogs.com/Baronboy/p/6037913.html

https://www.cnblogs.com/wanghuaijun/p/5829872.html

https://www.cnblogs.com/afish/p/3969756.html

结果,OK了~~~~

django的o数据库设置也更新如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xxxDB',
        'USER': 'xx',
        'PASSWORD': 'xxx',
        'HOST': '10.xx.x.1',
        'PORT': '3306',
        'OPTIONS': {"init_command": "SET storage_engine=INNODB", }
    },
}

django migrate报错:1005 - Can't create table xxx (errno: 150 "Foreign key constraint is incorrectly formed")的更多相关文章

  1. MySQL创建外键约束的报错Error : Can't create table '#sql-534_185' (errno: 150)

    总得来说是因为两个表的字段类型不一致,例如: 两个字段的类型或大小不严格匹配,一个为tinyint,另一个为char:或一个为int(10)另一个为int(9)也是不行的,即使都为int(10),但一 ...

  2. MySQL添加外键报错 - referencing column 'xx' and referenced column 'xx' in foreign key constraint 'xx' are incompatible

    MySQL给两个表添加外键时,报错 翻译意思是:外键约束“xx”中的引用列“xx”和引用列“xx”不兼容 说明两个表关联的列数据类型不一致,比如:varchar 与 int,或者 int无符号 与 i ...

  3. Python Django migrate 报错解决办法

    1. 在现有基础上又添加一个表的时候migrate报错 migrate报错django.db.utils.OperationalError: (1050, "Table 'cmdb_eidc ...

  4. django migrate报错(提前删除表等)

    python3 manage.py makemigrations python3 manage.py migrate ##报错 改为##更改migrates的状态 python3 manage.py ...

  5. MySQL Error Number 1005 Can’t create table(Errno:150)

    mysql数据库1005错误解决方法 MySQL Error Number 1005 Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150) ...

  6. antd desgin vue 报错 Warning: Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.

    警告:表的数据源中的每条记录都应该有一个唯一的“key”道具,或者将表的“rowKey”设置为一个唯一的主键, 只需要添加 :rowKey="record => record.id&q ...

  7. Django:报错 raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)

    Django 执行迁移生成表: python manage.py migrate 报错: raise MigrationSchemaMissing("Unable to create the ...

  8. Django(21)migrate报错的解决方案

    前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪 ...

  9. django报错解决:Invalid HTTP_HOST header: 'xxx.com'. You may need to add u'xxx.com' to ALLOWED_HOSTS.

    django版本:1.11.15 使用uwsgi+nginx运行django程序,出现报错,报错为:Invalid HTTP_HOST header: 'xxx.com:82'. You may ne ...

随机推荐

  1. FLINK-11738

    caused by: akka.pattern.asktimeoutexception: ask timed out on flink Caused by: akka.pattern.AskTimeo ...

  2. 浅谈SQL Server事务与锁(上篇)

    一  概述 在数据库方面,对于非DBA的程序员来说,事务与锁是一大难点,针对该难点,本篇文章试图采用图文的方式来与大家一起探讨. “浅谈SQL Server 事务与锁”这个专题共分两篇,上篇主讲事务及 ...

  3. Java基础---Java环境配置

    java 下载:https://www.java.com/zh_CN/ 1.Java安装:jdk9 2. JAVA_HOME 环境变量的配置 在DOS命令行下使用这些工具,就要先进入到JDK的bin目 ...

  4. python_封装redis_list方法

    xshell 进入 虚拟环境 安装 redis workon py3env # 进入虚拟环境 pip install redis # 安装redis deactivate # 退出虚拟环境 简单的封装 ...

  5. Redis Cluster: (error) MOVED

      I have a Redis cluster with the following nodes: 192.168.0.14:6379 master (slots from 0 to 16383) ...

  6. java之mybatis整合spring

    这篇讲解spring+mybatis的整合. 目录结构: 一. 整合spring的第一种方法 1. 新建 java 项目 : spring_mybatis 2.导入jar 包-----spring和m ...

  7. 重新学习Spring一--Spring在web项目中的启动过程

    1 Spring 在web项目中的启动过程 Spring简介 Spring 最简单的功能就是创建对象和管理这些对象间的依赖关系,实现高内聚.低耦合.(高内聚:相关性很强的代码组成,既单一责任原则:低耦 ...

  8. Java自学-控制流程 结束外部循环

    Java中结束外部循环 Java中如何结束外部for循环? 示例 1 : 结束当前循环 break; 只能结束当前循环 public class HelloWorld { public static ...

  9. pandas-12 数学计算操作df.sum()、df.min()、df.max()、df.decribe()

    pandas-12 数学计算操作df.sum().df.min().df.max().df.decribe() 常用的数学计算无非就是加减,最大值最小值,方差等等,pandas已经内置了很多方法来解决 ...

  10. js基础闭包练习题

    题目描述 实现函数 makeClosures,调用之后满足如下条件:1.返回一个函数数组 result,长度与 arr 相同2.运行 result 中第 i 个函数,即 result[i](),结果与 ...