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映射拆分操作符用法实例
May 19 Python
python实现多线程的两种方式
May 22 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
500行Python代码打造刷脸考勤系统
Jun 03 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
Jan 15 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php发送post请求函数分享
2014/03/06 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
php语法检查的方法总结
2019/01/21 PHP
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
js定时器实例分享
2016/12/20 Javascript
JS前端加密算法示例
2016/12/22 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
python并发编程之线程实例解析
2017/12/27 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
工程师岗位职责
2013/11/08 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
音乐教育感言
2014/03/05 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
Python自动化爬取天眼查数据的实现
2021/06/15 Python
JS class语法糖的深入剖析
2022/07/07 Javascript
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python