自从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; -----------------…
总得来说是因为两个表的字段类型不一致,例如: 两个字段的类型或大小不严格匹配,一个为tinyint,另一个为char:或一个为int(10)另一个为int(9)也是不行的,即使都为int(10),但一个是有符号数,一个是无符号数也会报错. reference的另一个表的字段必须是主键或建立索引. 外键的名字有重复或与键值重复. 两个表必须都是用InnoDB引擎,事实上MyISAM引擎是不会产生外键的. 设置了ON DELETE SET NULL,但字段又设置为NOT NULL. 在这个关系里面,…
MySQL给两个表添加外键时,报错 翻译意思是:外键约束“xx”中的引用列“xx”和引用列“xx”不兼容 说明两个表关联的列数据类型不一致,比如:varchar 与 int,或者 int无符号 与 int有符号,都不行,必须要一模一样才可以,修改完成后,就可以添加外键了.…
1. 在现有基础上又添加一个表的时候migrate报错 migrate报错django.db.utils.OperationalError: (1050, "Table 'cmdb_eidc' already exists") 解决1:python manage.py migrate --fake cmdb python manage.py migrate 如上没有解决:继续下面 python manage.py migrate --fake cmdb 0003 回退到0003号的mi…
python3 manage.py makemigrations python3 manage.py migrate ##报错 改为##更改migrates的状态 python3 manage.py migrate --fake…
mysql数据库1005错误解决方法 MySQL Error Number 1005 Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150) MySQL Error Number 1005Can’t create table ‘.\mydb\#sql-328_45.frm’ (errno: 150) If you get this error while trying to create a foreign key, it can be…
警告:表的数据源中的每条记录都应该有一个唯一的“key”道具,或者将表的“rowKey”设置为一个唯一的主键, 只需要添加 :rowKey="record => record.id"  即可.…
Django 执行迁移生成表: python manage.py migrate 报错: raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc) 原因: Django2.1不再支持MySQL5.5,必须5.6版本以上 解决办法: 二选一 (1)Django降级到2.0 pip install Django==2.0.0 -i https://pypi.douban.c…
前言 在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本.映射到数据库中.创建新的表或者修改表的结构. 问题1:migrate怎么判断哪些迁移脚本需要执行? 它会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本. 问题2:migrate做了什么事情 将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句. 如果这个SQL语句执行没…
django版本:1.11.15 使用uwsgi+nginx运行django程序,出现报错,报错为:Invalid HTTP_HOST header: 'xxx.com:82'. You may need to add u'xxx.com' to ALLOWED_HOSTS.xxx.com为绑定的测试域名,82为端口 解决办法: 修改项目的setting.py配置文件 将ALLOWED_HOSTS = []改为ALLOWED_HOSTS = ['*'] 再次运行可以成功访问了.…