当前位置: 首页 > article >正文

执行Django项目的数据库迁移命令时报错:(1050, “Table ‘django_session‘ already exists“);如何破?

一、问题描述:

当我们写Django时,由于自己的操作不当,导致执行数据库迁移命令时报错,报错的种类有很多,例如:

  • 迁移文件冲突:可能你有多个迁移文件试图创建同一个表。
  • 数据库状态与迁移文件不同步:你的数据库中已经存在某些表,但迁移文件或 Django 的迁移记录(存储在 django_migrations 表中)不匹配。
  • 重复运行初始迁移:你可能多次运行了初始的迁移命令,导致 Django 试图重新创建已经存在的表。

这篇文章将用于不定期更新所遇到的错误和解决办法。

二、迁移命令如下:

 python manage.py makemigrations
 python manage.py migrate

三、错误整理:

错误一:
```python
pymysql.err.OperationalError: (1050, "Table 'django_session' already exists")
```
  • 解决办法:
  • 在数据库中找到Django 的迁移记录(存储在 django_migrations 表中),删除掉相关的表记录,我这里是删除掉sessions这条记录。如果你的users表有问题,那就删除掉所有users相关的记录(原表中的数据不会受到影响)。
  • 在这里插入图片描述
  • 删除掉相关项目文件夹migrations下除了__init__.py的所有文件,例如users下:
  • 在这里插入图片描述
  • 然后依次执行下面的语句
  • 如果你确定数据库中的表是正确的,但迁移记录不正确,你可以使用 --fake 选项来标记迁移为已完成。
    python manage.py makemigrations
    python manage.py migrate --fake  # --fake
    
  • 查看结果
  • 在这里插入图片描述
错误二:

错误搜集中…


http://www.kler.cn/news/363979.html

相关文章:

  • 如何训练 RAG 模型
  • ACM与蓝桥杯竞赛指南 基本输入输出格式五
  • gin入门教程(9):路由分组与路由版本控制
  • 轻松掌握Win10录屏技巧:四大神器推荐!
  • js(深浅拷贝,节流防抖,this指向,改变this指向的方法)
  • 【独家:AI编程助手Cursor如何revolutionize Java设计模式学习】
  • 【spring cloud】深入探讨 集群,分布式,微服务
  • OpenGL 进阶系列05 - OpenGL 图元重启(primitiverestart)
  • python的散列类型与字符编码
  • 为什么说Tcp是面向字节流的以及(Tcp粘包问题、TCP/UDP对比、listen函数的backlog参数的意义)
  • Kafka高可用性原理深度解析
  • 信息安全工程师(69)数字水印技术与应用
  • k8s-service详解
  • 使用python,自动实现将多个 JPG 文件转换为一个 PDF 文件
  • 11106 操作(c)
  • 【动态规划】子序列问题(上)
  • yarn的安装与使用以及与npm的区别(安装过程中可能会遇到的问题)
  • 动态规划-动归基础
  • 基于neo4j的新冠治疗和新冠患者轨迹的知识图谱问答系统
  • Hallo2 长视频和高分辨率的音频驱动的肖像图像动画 (数字人技术)
  • k8s 配置私有镜像仓库认证
  • repo将每个仓库回退到第一个commit的状态
  • 工具_Nginx
  • 学习记录:js算法(七十四):跳跃游戏II
  • Linux 移植_Home_Record
  • 【Linux系统】缺页中断机制