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


Posted in Python onMay 27, 2018

由于项目需要,最近在用基于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命令手动创建了表,再启动应用,可以正常启动,问题解决。

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

以上这篇django 删除数据库表后重新同步的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
动感网页相册 python编写简单文件夹内图片浏览工具
Aug 17 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
Python金融数据可视化汇总
Nov 17 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
Python数据可视化:箱线图多种库画法
Nov 06 Python
python 串口读取+存储+输出处理实例
Dec 26 Python
python标识符命名规范原理解析
Jan 10 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 Python
Django 根据数据模型models创建数据表的实例
May 27 #Python
Django使用Mysql数据库已经存在的数据表方法
May 27 #Python
django中模板的html自动转意方法
May 27 #Python
Django读取Mysql数据并显示在前端的实例
May 27 #Python
django加载本地html的方法
May 27 #Python
《与孩子一起学编程》python自测题
May 27 #Python
儿童python练习实例
May 27 #Python
You might like
cache_lite试用
2007/02/14 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
2013/10/25 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php的扩展写法总结
2019/05/14 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
react+antd 递归实现树状目录操作
2020/11/02 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python制作一个桌面便签软件
2015/08/09 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python中偏函数用法示例
2018/06/07 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
numpy库reshape用法详解
2020/04/19 Python
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
网吧消防安全责任书
2014/07/29 职场文书
给老婆的保证书
2015/01/16 职场文书
导师工作推荐信
2015/03/27 职场文书
小学中队活动总结
2015/05/11 职场文书
美丽的大脚观后感
2015/06/03 职场文书
交流会主持词
2015/07/02 职场文书