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

标签:django,migrate
0
投稿

猜你喜欢

  • js 操作cookie的教程

    2008-03-05 13:08:00
  • IBatis.net连接MySql 问题与故障的解决方案

    2011-06-02 09:38:00
  • 用server.transfer隐藏网页真实地址

    2007-12-04 13:02:00
  • 清除SQL被注入恶意病毒代码的语句

    2010-03-03 09:59:00
  • python使用json.dumps输出中文问题

    2023-11-17 22:04:46
  • python中py文件与pyc文件相互转换的方法实例

    2021-03-29 13:15:27
  • oracle join on 数据过滤问题

    2009-07-14 21:17:00
  • python tkinter界面居中显示的方法

    2023-10-14 11:16:18
  • asp如何遍历Cookies集合?

    2009-11-08 19:07:00
  • 何在MySQL数据库中定义外键

    2009-12-17 12:29:00
  • redis不能访问本机真实ip地址的解决方案

    2023-07-05 13:09:44
  • Sql Server 查询性能优化之走出索引的误区分析

    2012-05-22 18:56:52
  • Python正则表达式的另类解答

    2023-08-02 06:58:04
  • Oracle 触发器的使用小结

    2009-05-24 19:54:00
  • Python调用.NET库的方法步骤

    2022-07-02 06:46:17
  • 玩转CSS3色彩[译]

    2010-01-13 13:02:00
  • asp任何取得多个表单的值

    2008-04-15 15:31:00
  • Python子类继承父类构造函数详解

    2023-02-27 09:13:03
  • SQL Server应用程序的高级Sql注入

    2009-04-11 16:54:00
  • Host localhost is not allowed to conn

    2011-02-23 12:41:00
  • asp之家 网络编程 m.aspxhome.com