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简单文本处理的方法
Jul 10 Python
Python中强大的命令行库click入门教程
Dec 26 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
wxPython之wx.DC绘制形状
Nov 19 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
pycharm 设置项目的根目录教程
Feb 12 Python
python线性插值解析
Jul 05 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代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
PHP实现懒加载的方法
2015/03/07 PHP
Zend Framework教程之视图组件Zend_View用法详解
2016/03/05 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
json跟xml的对比分析
2008/06/10 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
vue iview实现动态新增和删除
2020/06/17 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python中的zipfile模块使用详解
2015/06/25 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python绘制组合图的示例
2020/09/18 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
护士自荐信怎么写
2013/10/18 职场文书
测试工程师岗位职责
2013/11/28 职场文书
远程研修随笔感言
2014/02/10 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL