Django-migrate报错问题解决方案


Posted in Python onApril 21, 2020

python3 manage.py makemigrations # 生成数据库迁移文件
python3 manage.py migrate # 迁移数据库

简简单单两条命令就完成了django的数据库迁移

但是今天一天的时间都耽误在这了,一点都不夸张的那种,,早上去公司讨论需求之后,研究了一下需要更改一下数据库,在执行makemigrations的时候OK没有问题,但是migrate就报错了

1.报错: XX表已经存在,django.db.utils.OperationalError: (1050, "Table XX already exists

我:删表,但是报错,Cannot delete or update a parent row: a foreign key constraint fails 跟YY表存在外键关系,无法删除,

百度了一番之后:1、SET foreign_key_checks = 0; // 先设置外键约束检查关闭

2、drop table XX; // 删除数据,表或者视图

3、SET foreign_key_checks = 1; // 开启外键约束检查,以保持表结构完整性 

2.表删了之后重新执行migrate,又报错别的表存在,如此一直循环往复,我都怀疑这是人家写的一个while True,

我:找到了第二种解决方案:python manage.py migrate myapp --fake # 切记把myapp换成你要执行的APP名称

这条命令可以顺利执行,没有报错,但是又找不到对应生成的表在哪里,顶如还是说不能成功

3.将之前执行makemigrations生成的migrations文件夹删除,重新来过,OK,还是一样的毛病,

4.重新创建了database之后,重新来过,只生成了django自带的那几张表,然而项目里大多的数据存储都是依靠我在每一个app里创建的table里呀

5.将每个APP下的migrations都删掉,database也重新来过,好嘛,连最基本的数据库迁移文件夹都不能生成了,一瞬间有种悔不当初的感觉,但是又能怎么样呢,就是需要调整数据库呀

6.这个时候重头开始来过,千万不要慌,检查settings里是否把每一个APP都注册到,项目同名目录下的__init__.py里是否包含了

import pymysql

pymysql.install_as_MySQLdb()

7.没有问题之后这样去执行数据库迁移的命令 

python3 manage.py migrate # 生成django自带的数据库
python3 manage.py makemigrations appname # 将appname换成你要迁移的那个app的名称
python3 manage.py migrate appname # 同理,换名

至此,一个小小的问题,真的就花了我一天的时间,好在终于解决了,

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式介绍
Aug 06 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
Python命令行参数解析模块optparse使用实例
Apr 13 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
Python实现的文本对比报告生成工具示例
May 22 Python
python实现图片批量压缩程序
Jul 23 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
python实现FTP循环上传文件
Mar 20 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
Python中time与datetime模块使用方法详解
Mar 31 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 #Python
jupyter 导入csv文件方式
Apr 21 #Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 #Python
Python多线程实现支付模拟请求过程解析
Apr 21 #Python
安装多个版本的TensorFlow的方法步骤
Apr 21 #Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 #Python
TensorFLow 数学运算的示例代码
Apr 21 #Python
You might like
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
收音机指标测试方法及仪器
2021/03/01 无线电
一个用于MySQL的PHP XML类
2006/10/09 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
vue组件实例解析
2017/01/10 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue下使用nginx刷新页面404的问题解决
2019/08/02 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
Python线程的两种编程方式
2015/04/14 Python
Python实现购物车程序
2018/04/16 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
孝老爱亲模范事迹材料
2014/05/25 职场文书
公务员政审材料范文
2014/12/23 职场文书
个人党性分析总结
2015/03/05 职场文书
Python 全局空间和局部空间
2022/04/06 Python
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL