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接收多播数据的代码
Mar 01 Python
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
在Windows8上的搭建Python和Django环境
Jul 03 Python
基于python内置函数与匿名函数详解
Jan 09 Python
简单了解Django ContentType内置组件
Jul 23 Python
Python列表的切片实例讲解
Aug 20 Python
Python统计文本词汇出现次数的实例代码
Feb 27 Python
python怎么自定义捕获错误
Jun 29 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
python中字符串的编码与解码详析
Dec 03 Python
Python 数据可视化之Seaborn详解
Nov 02 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
百度留言本js 大家可以参考下
2009/10/13 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python实现定时提取实时日志程序
2018/06/22 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
会计学个人自荐信模板
2013/12/13 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2014年团总支工作总结
2014/11/21 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
在js中修改html body的样式
2021/11/11 Javascript
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers