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 相关文章推荐
pyenv命令管理多个Python版本
Mar 26 Python
详谈python read readline readlines的区别
Sep 22 Python
python操作redis方法总结
Jun 06 Python
Python列表解析配合if else的方法
Jun 23 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python flask安装和命令详解
Apr 02 Python
Python的高阶函数用法实例分析
Apr 11 Python
python实现二级登陆菜单及安装过程
Jun 21 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
Python函数参数类型及排序原理总结
Dec 19 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
Sep 03 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 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实现将任意进制数转换成10进制的方法
2015/04/17 PHP
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
javascript实现简易计算器
2017/02/01 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
优秀语文教师事迹
2014/05/18 职场文书
主要领导对照检查材料
2014/08/26 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
nginx优化的六点方法
2021/03/31 Servers
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
欧元符号 €
2022/02/17 杂记
实现GO语言对数组切片去重
2022/04/20 Golang