django数据库migrate失败的解决方法解析


Posted in Python onFebruary 08, 2018

Django是一个MVC架构的web框架,其中,数据库就是“Module”。使用这种框架,我们不必写一条SQL语句,就可以完成对数据库的所有操作。在之前的Django版本中,我们像操作本地对象那样操作数据对象,在更改保存之后,执行python
manage.py syncdb命令来同步数据库,在我使用的1.9.2版本中,需要依次执行一下步骤:

  • python manage.py makemigrations (这个命令会根据你对数据库做出的更改生成操作数据库的python脚本)
  • python manage.py migrate (这个命令会执行python脚本)

我遇到的问题是,执行makemigrations没有问题,但是执行migrate的时候有问题。于是我修改了modules.py中错误的代码,再次执行,却一直出问题。提示如下:

django.db.utils.OperationalError:
(1060,
"Duplicate
 column name 'to_user_id'")

我删掉了makemigrations生成的代码,然后重新使用makemigrations生成脚本,还是出错。

原来,这是由于出错的时候,migrate命令已经执行了部分脚本,也就是说,to_user_id属性已经被操作过了,在数据库中,已经无需再操作了,所以执行migrate命令重新更新makemigrations的脚本会出错。

解决办法

重新生成makemigrations不行,执行migrate也只会全部执行。那么我们只好把数据库恢复到出错的那次执行前面的样子。

django数据库migrate失败的解决方法解析

恢复方法:在project/app/migrations下有每次对数据操作所生成的脚本。找到出错那次脚本,打开脚本,可读性还是很高的,将所对应的数据库更改还原(当然得使用mysql语句了)。

然后删掉这次migration,重新make 然后执行。

实在不行,还有一个万不得已的办法。几乎所有的数据库错误都可以用这个方法解决:

将migrations文件夹下的文件除了__init__.py全部删掉,然后将数据库drop掉,重新建数据库。然后make,migrate,就可以使用一个新的数据库(但愿你永远用不到这个方法)。

总结

以上就是本文关于django数据库migrate失败的解决方法解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python中MySQLdb模块用法实例
Nov 10 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
python自动化测试之如何解析excel文件
Jun 27 Python
python实现用户名密码校验
Mar 18 Python
python 使用while循环输出*组成的菱形实例
Apr 12 Python
Python ORM框架Peewee用法详解
Apr 29 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
Python 必须了解的5种高级特征
Sep 10 Python
Django返回HTML文件的实现方法
Sep 17 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
利用Python函数实现一个万历表完整示例
Jan 23 Python
python使用锁访问共享变量实例解析
Feb 08 #Python
Python异常对代码运行性能的影响实例解析
Feb 08 #Python
Python科学计算包numpy用法实例详解
Feb 08 #Python
Python多进程并发与多线程并发编程实例总结
Feb 08 #Python
Python的CGIHTTPServer交互实现详解
Feb 08 #Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 #Python
python实现二叉查找树实例代码
Feb 08 #Python
You might like
isset和empty的区别
2007/01/15 PHP
php 地区分类排序算法
2013/07/01 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
pandas数据处理进阶详解
2019/10/11 Python
python微信公众号开发简单流程实现
2020/03/09 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
英语道歉信范文
2014/01/09 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
纠纷协议书
2014/04/16 职场文书
团队口号大全
2014/06/06 职场文书
社区综治工作汇报
2014/10/27 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
结婚堵门保证书
2015/05/08 职场文书
保姆聘用合同
2015/09/21 职场文书
python实现图片批量压缩
2021/04/24 Python
Java数组详细介绍及相关工具类
2022/04/14 Java/Android
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers