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转换HTML到Text纯文本的方法
Jan 15 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
最近Python有点火? 给你7个学习它的理由!
Jun 26 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
python关于调用函数外的变量实例
Dec 26 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
Python调用.net动态库实现过程解析
Jun 05 Python
总结Pyinstaller打包的高级用法
Jun 28 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
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
php中rename函数用法分析
2014/11/15 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
js跑马灯代码(自写)
2013/04/17 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python模块搜索路径代码详解
2018/01/29 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python简单区块链模拟详解
2019/07/03 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
班级活动总结格式
2014/08/30 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
接待员岗位职责
2015/02/13 职场文书
优秀党员个人总结
2015/02/14 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
国富论读书笔记
2015/06/26 职场文书
找规律教学反思
2016/02/23 职场文书
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS
小程序自定义轮播图圆点组件
2022/06/25 Javascript