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使用pymysql实现操作mysql
Sep 13 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
python 异或加密字符串的实例
Oct 14 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
python实现人像动漫化的示例代码
May 17 Python
用python对excel查重
Dec 07 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 12 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
php&java(一)
2006/10/09 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
PHP实现图片压缩
2020/09/09 PHP
php测试kafka项目示例
2020/02/06 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
node.js中的require使用详解
2014/12/15 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python实现简易数码时钟
2021/02/19 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Python 多进程原理及实现
2020/12/21 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
主治医师岗位职责
2013/12/10 职场文书
高中军训感言1000字
2014/03/01 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
应用外语系自荐信
2014/06/26 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
大学学习委员竞选稿
2015/11/20 职场文书