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 03 Python
一个超级简单的python web程序
Sep 11 Python
python错误处理详解
Sep 28 Python
Python随机生成带特殊字符的密码
Mar 02 Python
python魔法方法-属性转换和类的表示详解
Jul 22 Python
python3 shelve模块的详解
Jul 08 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
Django实现列表页商品数据返回教程
Apr 03 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
Pygame如何使用精灵和碰撞检测
Nov 17 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
layui的select联动实现代码
2019/09/28 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python删除字符串中指定字符的方法
2018/08/13 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Python Selenium截图功能实现代码
2020/04/26 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
python 如何将office文件转换为PDF
2020/09/22 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
高中班主任评语大全
2014/04/25 职场文书
师德师风的心得体会
2014/09/02 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
接待员岗位职责
2015/02/13 职场文书
辅导员学期工作总结
2015/08/14 职场文书
2019年大学推荐信
2019/06/24 职场文书
python某漫画app逆向
2021/03/31 Python
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript