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用fork来创建子进程注意事项
Jul 03 Python
Python装饰器基础详解
Mar 09 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
python 检查是否为中文字符串的方法
Dec 28 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
Python多分支if语句的使用
Sep 03 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
Python实现批量自动整理文件
Mar 16 Python
python获取字符串中的email
Mar 31 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
学习php笔记 字符串处理
2010/10/19 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
python虚拟环境迁移方法
2019/01/03 Python
python爬取内容存入Excel实例
2019/02/20 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
后进生转化工作制度
2014/01/17 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
学习礼仪心得体会
2014/09/01 职场文书
初中中等生评语
2014/12/29 职场文书
感恩节寄语2015
2015/03/24 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技