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脚本生成随机IP的简单方法
Jul 30 Python
python生成随机图形验证码详解
Nov 08 Python
Python中turtle作图示例
Nov 15 Python
python实现画圆功能
Jan 25 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
Python集合操作方法详解
Feb 09 Python
Python如何使用turtle库绘制图形
Feb 26 Python
python 获取计算机的网卡信息
Feb 18 Python
Python如何利用pandas读取csv数据并绘图
Jul 07 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
js原型链原理看图说明
2012/07/07 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
jQuery实现的可编辑表格完整实例
2016/06/20 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
Django基础之Model操作步骤(介绍)
2017/05/27 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python机器学习之决策树算法
2017/12/22 Python
Python的多维空数组赋值方法
2018/04/13 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python实现定时提取实时日志程序
2018/06/22 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
Python装饰器结合递归原理解析
2020/07/02 Python
高级销售员求职信
2013/10/25 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
文明好少年事迹材料
2014/08/19 职场文书
小学班主任事迹材料
2014/12/17 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL
netty 实现tomcat的示例代码
2022/06/05 Servers