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 enumerate遍历数组示例应用
Sep 06 Python
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
Python下的twisted框架入门指引
Apr 15 Python
python实现字符串和字典的转换
Sep 29 Python
Python自定义一个异常类的方法
Jun 27 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
Jul 03 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
python空元组在all中返回结果详解
Dec 15 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Python循环之while无限迭代
Apr 30 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
php连接Access数据库错误及解决方法
2013/06/20 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
PHP文件操作实例总结
2016/09/27 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
javascript 写类方式之八
2009/07/05 Javascript
js常用排序实现代码
2010/12/28 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
python通过文件头判断文件类型
2015/10/30 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
几道PHP面试题
2013/04/14 面试题
活动策划邀请函
2014/02/06 职场文书
财务简历的自我评价
2014/03/05 职场文书
销售顾问工作计划书
2014/09/15 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
高中生物教学反思
2016/02/20 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js