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根据出生日期获得年龄的方法
Mar 31 Python
python实现在每个独立进程中运行一个函数的方法
Apr 23 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python 专题一 函数的基础知识
Mar 16 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
解决python大批量读写.doc文件的问题
May 08 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
python实现从ftp服务器下载文件
Mar 03 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Python工程师必考的6个经典面试题
Jun 28 Python
Python 正则模块详情
Nov 02 Python
Python列表的索引与切片
Apr 07 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
浅谈PHP封装CURL
2019/03/06 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
vue指令做滚动加载和监听等
2019/05/26 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Python callable内置函数原理解析
2020/03/05 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
物流经理自我评价
2013/09/23 职场文书
干部考核评语
2014/04/29 职场文书
绿色环保标语
2014/06/12 职场文书
体育馆的标语
2014/06/24 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL