django 删除数据库表后重新同步的方法

作者:T_world 时间:2024-01-12 23:11:56 

由于项目需要,最近在用基于Python语言的一个后端框架Django开发web应用。不得不说,Django继承了Python的简洁性,用它来开发web应用简单清爽,不同于从前的SSH框架,需要单独配置每个框架,还需要通过配置将各个框架集合起来,Django就集成了SSH三个框架的功能,只需要配置好这一个框架,整个后端开发流程全部可以完成,并且配置过程简单易学,这就大大降低了程序员的使用复杂度,可以将更多的精力集中于写出好的代码,而不是纠结于工具的使用。

闲言少叙,现在就来说一说我遇到的问题和解决方案。

我们都知道Django提供了ORM的功能,可以通过操作代码中的类直接创建数据库表以及进行增删改查。但是在开发过程中,由于数据库表的重新设计,需要删除原表,并通过Django的ORM功能重新同步表。

同步命令如下:


python manage.py makemigrations

python manage.py migrate

但是在我输入命令之后报错了:

django 删除数据库表后重新同步的方法

提示说我新增的字段没有默认值(我对数据库表的修改就是增加了一个字段),然后我去百度,在stackoverflow上找到了答案,在该字段后增加一个默认值即可。但是明显这个答案没有找到我遇到问题的真正原因,因为这样做第一条命令成功执行,但是到第二条时就直接报错。

然后我又去百度,有人建议看一下框架自动生成的initial文件,该文件在当前app下的migrations目录下,打开后发现该文件内容和原表对应,也就是并没有更新,问题可能就在这了。于是我按照建议删除了这个文件重新生成。

删除文件之后重新执行命令,这次确实生成了新的initial文件,内容也已经更新,但是执行第二条命令时还是出了问题,查看数据库,空空如也,没有产生新表。崩溃。

然后又去百度,找相关问题看,看到另外一条命令:


python manage.py sqlmigrate your_app_name 0001

把your_app_name换成自己的app名字即可看到框架自动生成的创建表sql语句,于是我就这样看到了sql语句。我直接在数据库中执行了该句sql命令手动创建了表,再启动应用,可以正常启动,问题解决。

虽然这个方法有些取巧吧,似乎还是没有解释问题的症结所在,但好在很实用地解决了问题。

来源:https://blog.csdn.net/Runner__1/article/details/74171979

标签:django,删除,数据库表,同步
0
投稿

猜你喜欢

  • MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法

    2024-01-15 17:25:21
  • 超简单的微信小程序轮播图

    2024-04-25 10:36:05
  • PHP crc32()函数讲解

    2023-06-10 00:34:45
  • 详解爬虫被封的问题

    2021-01-29 15:21:16
  • django实现类似触发器的功能

    2023-10-10 22:36:41
  • 通过索引优化含ORDER BY的MySQL语句

    2010-03-13 12:20:00
  • python selenium实现智联招聘数据爬取

    2022-08-30 00:29:02
  • 详解python使用金山词霸的翻译功能(调试工具断点的使用)

    2021-06-27 03:33:52
  • 从头学Python之编写可执行的.py文件

    2022-07-10 18:47:29
  • 对Python3+gdal 读取tiff格式数据的实例讲解

    2023-03-10 10:21:53
  • MIME Type 引出的两难困境

    2011-06-14 09:45:41
  • 基于python实现简单网页服务器代码实例

    2023-06-26 07:56:44
  • pytorch nn.Conv2d()中的padding以及输出大小方式

    2022-09-05 05:30:07
  • Python正则表达式介绍

    2023-05-29 01:32:58
  • 一些常用的Python爬虫技巧汇总

    2021-01-02 22:51:56
  • python批量下载网站马拉松照片的完整步骤

    2023-08-31 19:00:27
  • python字符串常用方法

    2023-05-29 13:54:15
  • JS图片懒加载的优点及实现原理

    2024-04-18 09:45:34
  • Django集成MongoDB实现过程解析

    2022-07-10 03:32:35
  • Python3 中return和yield的区别

    2023-10-19 09:03:00
  • asp之家 网络编程 m.aspxhome.com