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中统计函数运行耗时的方法
May 05 Python
编写自定义的Django模板加载器的简单示例
Jul 21 Python
Python使用pylab库实现画线功能的方法详解
Jun 08 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
django从后台返回html代码的实例
Mar 11 Python
python 实现任务管理清单案例
Apr 25 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 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项目的方法
2006/10/09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
PHP 代码规范小结
2012/03/08 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
Vue异步加载about组件
2017/10/31 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python对切片命名的实现方法
2018/10/16 Python
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
八一慰问活动方案
2014/02/07 职场文书
计算机专业自荐信
2014/05/24 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
小学中等生评语
2014/12/29 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
python元组打包和解包过程详解
2021/08/02 Python
MySQL分库分表详情
2021/09/25 MySQL