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数组遍历的简单实现方法小结
Apr 27 Python
python爬虫获取多页天涯帖子
Feb 23 Python
python版大富翁源代码分享
Nov 19 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
Python使用psutil获取进程信息的例子
Dec 17 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
Jan 05 Python
详解python的变量缓存机制
Jan 24 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新手上路(四)
2006/10/09 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
对numpy中shape的深入理解
2018/06/15 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
python利用faker库批量生成测试数据
2020/10/15 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
基层党组织公开承诺书
2014/03/28 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
JVM之方法返回地址详解
2022/02/28 Java/Android