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实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
Python批量按比例缩小图片脚本分享
May 21 Python
使用Django的模版来配合字符串翻译工作
Jul 27 Python
利用pandas读取中文数据集的方法
Jul 25 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
python区块及区块链的开发详解
Jul 03 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
详解python中GPU版本的opencv常用方法介绍
Jul 24 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
Python类class参数self原理解析
Nov 19 Python
Python学习之迭代器详解
Apr 01 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
PHP排序算法的复习和总结
2012/02/15 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
利用python发送和接收邮件
2016/09/27 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
python3实现弹弹球小游戏
2019/11/25 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
python对XML文件的操作实现代码
2020/03/27 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
会展中心部门工作职责
2013/11/27 职场文书
高一地理教学反思
2014/01/18 职场文书
列车长先进事迹材料
2014/01/25 职场文书
小学生秋游活动方案
2014/02/23 职场文书
广告创意求职信
2014/03/17 职场文书
继承公证书样本
2014/04/04 职场文书
北京导游词
2015/02/12 职场文书
投诉信回复范文
2015/07/03 职场文书
工作会议简报
2015/07/20 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL