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实现的计数排序算法示例
Nov 29 Python
python数字图像处理实现直方图与均衡化
May 04 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python将json文件写入ES数据库的方法
Apr 10 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
Python类super()及私有属性原理解析
Jun 15 Python
Python类及获取对象属性方法解析
Jun 15 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
使用js在layui中实现上传图片压缩
2019/06/18 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
用pickle存储Python的原生对象方法
2017/04/28 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python开发入门——列表生成式
2020/09/03 Python
python实现无边框进度条的实例代码
2020/12/30 Python
python实现经典排序算法的示例代码
2021/02/07 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
总经理秘书工作职责
2013/12/26 职场文书
化工专业大学生职业生涯规划书
2014/01/14 职场文书
借款协议书
2014/04/12 职场文书
《灰雀》教学反思
2016/02/19 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
React列表栏及购物车组件使用详解
2021/06/28 Javascript
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers