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应用程序在windows下不出现cmd窗口的办法
May 29 Python
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
python生成二维码的实例详解
Oct 29 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
selenium3+python3环境搭建教程图解
Dec 07 Python
python分数表示方式和写法
Jun 26 Python
python psutil模块使用方法解析
Aug 01 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
python归并排序算法过程实例讲解
Nov 04 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
python里将list中元素依次向前移动一位
2014/09/12 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
详解python中的装饰器
2018/07/10 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
英语系毕业生自荐信
2013/10/31 职场文书
一年级数学教学反思
2014/02/01 职场文书
秋天的雨教学反思
2014/04/27 职场文书
安全生产承诺书范文
2014/05/22 职场文书
求职教师自荐书
2014/06/19 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
担保贷款承诺书
2015/04/30 职场文书
培训讲师开场白
2015/06/01 职场文书
课题研究阶段性总结
2015/08/13 职场文书