Django-migrate报错问题解决方案
作者:小陆同学 发布时间:2021-11-05 13:30:16
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 # 同理,换名
至此,一个小小的问题,真的就花了我一天的时间,好在终于解决了,
来源:https://www.cnblogs.com/lutt/p/11986409.html


猜你喜欢
- 上篇博文我们实现了两百行代码实现贪吃蛇游戏,这次我们来实现一个代码量更加少,功能却更加完整的python代码实现贪吃蛇游戏,具体代码与文件可
- 目录与SpringBoot2.0整合 1、核心依赖2、配置文件3、实体类对象4、JPA框架的用法5、封装一个服务层逻辑测试代码块&
- 今天写的代码片段:X = Y = []..X.append(x)Y.append(y)其中x和y是读取的每一个数据的xy值,打算将其归入列表
- 底部3-5个选项的底部导航栏,目前在移动端上是主流布局之一,因此腾讯官方特地做了,可以通过设置,就可以做出了一个底部的导航栏。相关教程:微信
- 我就废话不多说了,大家还是直接看代码吧~import pymysqlfrom sshtunnel import SSHTunnelForwa
- 人生苦短,我用python!为什么很多人喜欢用python,因为包多呀,各种调包。但是调包有的时候也调的闹心,因为安装包不是失败就是很慢,很
- 本文实例讲述了js实现鼠标感应向下滑动隐藏菜单的方法。分享给大家供大家参考。具体实现方法如下:<html><head>
- 今天学习了数组,可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之…… 一、数组定
- 1. 文件锁脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件。通过文件的判断来确定脚本是否正在执行。方法实现也
- 前言JSHint用于分析和验证JavaScript代码是否符合您的编码规则。这个强大的工具可以帮助发现您代码中错误和问题T,它强制你的团队保
- 以下的文章主要介绍的是MySQL 查询缓存的实际应用代码以及查看MySQL 查询缓存的大小 ,碎片整理,清除缓存以及监视MySQL 查询缓存
- 先给大家介绍下Python 字符串前面加u,r,b,f的含义(字符串前缀)1、字符串前加 u例:u"我是含有中文字符组成的字符串。
- MySQL报错:错误代码: 1293 Incorrect table definition; there can be only one T
- 开发过程中的数据库结构结构,不可避免的会需要反复的修改。最麻烦的情况莫过于开发者数据库结构已经修改,而实际应用中数据库又有大量数据,如何在不
- <% dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") s
- # -*- coding: cp936 -*-import socketfrom threading import Thread,activ
- 本文实例讲述了php mailer类调用远程SMTP服务器发送邮件实现方法。分享给大家供大家参考,具体如下:php mailer 是一款很好
- 目录1. 线程的概念1.1 Manager_进程通信1.2 线程的概念2. 线程的基本使用3. 自定义线程_守护线程3.1 自定义线程3.2
- 前言如果想分布式执行用例,用例设计必须遵循以下原则:1、用例之间都是独立的,2、用例a不要去依赖用例b3、用例执行没先后顺序,4、随机都能执
- Base64编码的深入认识与理解 之前在很多业务中都有见过或者用到过Base64编码,但一直一知半解,没有对它有一个深入的认识和