django migrate报错:1005 - Can't create table xxx (errno: 150 "Foreign key constraint is incorrectly formed")
自从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")的更多相关文章
- MySQL创建外键约束的报错Error : Can't create table '#sql-534_185' (errno: 150)
总得来说是因为两个表的字段类型不一致,例如: 两个字段的类型或大小不严格匹配,一个为tinyint,另一个为char:或一个为int(10)另一个为int(9)也是不行的,即使都为int(10),但一 ...
- MySQL添加外键报错 - referencing column 'xx' and referenced column 'xx' in foreign key constraint 'xx' are incompatible
MySQL给两个表添加外键时,报错 翻译意思是:外键约束“xx”中的引用列“xx”和引用列“xx”不兼容 说明两个表关联的列数据类型不一致,比如:varchar 与 int,或者 int无符号 与 i ...
- Python Django migrate 报错解决办法
1. 在现有基础上又添加一个表的时候migrate报错 migrate报错django.db.utils.OperationalError: (1050, "Table 'cmdb_eidc ...
- django migrate报错(提前删除表等)
python3 manage.py makemigrations python3 manage.py migrate ##报错 改为##更改migrates的状态 python3 manage.py ...
- 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) ...
- 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 ...
- Django:报错 raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
Django 执行迁移生成表: python manage.py migrate 报错: raise MigrationSchemaMissing("Unable to create the ...
- Django(21)migrate报错的解决方案
前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪 ...
- 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 ...
随机推荐
- APT33追踪思路
APT33组织主要针对石油和航空业,这个组织使用了大约十二个命令与控制服务器(C&C)针对性的对目标攻击.APT33也一直在做定点针对性攻击.比如近两年来,该组织利用一位欧洲高级政治人物(该国 ...
- C++中的结构体所占内存空间总结
因为结构体有时候需要字节对齐.一般而言,struct 的 sizeof 是所有成员字节对齐后长度相加,而 union 的 sizeof 是取最大的成员长度. 在默认情况下,编译器为每一个变量或数据单元 ...
- Fiddler抓包工具的简单使用
Fiddler的官方网站:http://www.fiddler2.com Fiddler的官方帮助:http://docs.telerik.com/fiddler/knowledgebase/quic ...
- Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity
Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or ...
- Idea Spring 、SpringBoot相关设置技巧
1.Spring变量依赖注入出现红色波浪线 Could not autowire. No beans of 'UserMapper' type found. less... (Ctrl+F1) Che ...
- JPA中JpaRepository的使用
JAP中JpaRepository的使用方法 转载:https://www.cnblogs.com/amberbar/p/10261599.html转载:https://www.cnblogs.com ...
- Spark学习(1) Spark入门
什么事spark Spark是一种快速.通用.可扩展的大数据计算引擎.项目是用Scala进行编写,基于内存计算的 包括交互式查询和流处理 spark内置项目 Spark SQL:是 Spark 用来操 ...
- 2019-7-19 包、logging模块、hashlib(加密模块)、openpyxl模块、深浅拷贝
一.包 什么是包: 它是一系列模块文件的结合体,表示形式就是一个文件夹.该文件内部通常会有一个__init__.py文件,包的本质还是一个模块,可以被调用,调包就相当于与调用__init__.py文件 ...
- 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用
一般来说,删除节点可分为两个步骤: 首先找到需要删除的节点: 如果找到了,删除它. 说明: 要求算法时间复杂度为 O(h),h 为树的高度. 示例: root = [5,3,6,2,4,null,7] ...
- 开灯问题—C语言
开灯问题 有n盏灯,编号为1~n.第1个人把所有灯打开,第2个人按下所有编号为2的倍数开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关,以此类推.一共有k个人,问最后哪些灯是开着?输入n和 ...