django迁移脚本
执行migrate报错的解决办法:
想知道migrate为什么报错,需要先了解migrate到底做了什么事情
migrate做了什么事情?
1.将相关的迁移脚本翻译成sql语句,然后在数据库中执行
2.如果sql语句执行没有问题,那么会将相关的迁移脚本的名字记录到数据库中django_migrations表中
migrate怎么判断哪些迁移脚本需要执行?
migrate会将代码中的迁移脚本和数据库中的迁移脚本做对比,如果发现数据库中没有这个迁移脚本,便会执行
原因
执行migrate报错,是因为django项目中的迁移脚本和数据库里的django_migrations迁移脚本记录不一致导致报错
解决办法
使用--fake参数
首先对比数据库中的迁移脚本和代码中的迁移脚本,找到哪个不同,然后使用--fake,将代码中的迁移脚本添加到'django_migrations'里,但是不会执行sql语句,这样就避免每次执行migrate的时候重复调用迁移脚本
终极解决方案
如果代码中的迁移脚本和数据库中的脚本实在太多,就是搞不清了,那么这个时候可以用终极解决方案
1.将代码中的迁移脚本和数据库中的迁移脚本全部删除
2.确保app中models的字段和数据库中的字段一致
3.使用 python manager.py makemigrations重新生成迁移脚本
4.使用python manager.py migrate --fake-initial将刚刚生成的迁移脚本,标记为已完成(因为这些模型相对应的表,其实在数据库里都已经存在了,不需要重复执行)
django迁移脚本的更多相关文章
- Oracle冷备迁移脚本(文件系统)
Oracle冷备迁移脚本(文件系统) 两个脚本: 配置文件生成脚本dbinfo.sh 网络拷贝到目标服务器的脚本cpdb16.sh 1. 配置文件生成脚本 #!/bin/bash #Usage: cr ...
- flask 使用Flask-Migrate迁移数据库(创建迁移环境、生成迁移脚本、更新数据库)
使用Flask-Migrate迁移数据库 在开发时,以删除表再重建的方式更新数据库简单直接,但明显的缺陷是会丢掉数据库中的所有数据.在生产环境下,没有人想把数据都删除掉,这时需要使用数据库迁移工具来完 ...
- django迁移:全局、局部
django迁移:全局.局部 django 数据库迁移(migrate)应该知道的一些事 https://blog.csdn.net/stonesola/article/details/6975861 ...
- 关于Django迁移出现问题
关于Django迁移出现问题 源码: #coding:utf- from django.db import models # Create your models here. class BookIn ...
- Django迁移数据库报错
Django迁移数据库报错 table "xxx" already exists错误 django在migrate时报错django migrate error: table 'x ...
- Django迁移
Django迁移 学习目标: 如何在不编写任何SQL语句的情况下创建数据库表 更改model如何自动修改数据库 如何还原对数据库所做的更改 迁移能解决的问题 如果你不了解Django或者WEB开发,肯 ...
- 向同一个模型的外键反向关联名称产生了冲突 Django迁移
向同一个模型的外键反向关联名称产生了冲突 一个模型中有两个外键指向同一张表时,创建迁移模型时报错:" HINT: Add or change a related_name argument ...
- Django生成脚本迁移文件时,报错django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
一.本人环境:django:3.0.2, python:3.8.1, pymysql:0.9.3 二.解决步骤: 1.django目录下找到 base.py文件: 2.在base.py文件中注释以下 ...
- SQLServer的Login迁移脚本
背景:公司的数据由SQLServer2008 R2升级至SQLServer2012,并配置了AlwaysOn,本脚本用于将主节点的Login迁移至辅助节点. 1.在主节点执行以下脚本创建存储过程: U ...
随机推荐
- 【Excel】输入单引号
首位输入:输入两个单引号 拼接输入:可以引入输入 举个例子:拼接一个SQL,values都是字符串,需要引号 =IF( OR(A2="",B2="",C2=&q ...
- Linux文件系统与日志
1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...
- 洛谷 P1016 旅行者的预算
传送门 感觉自己连点生活常识都没有,竟然连油用过之后要减去都不知道,这种贪心模拟题都做不出来--思路在代码里,我菜死了 思路&&代码 //看题解过的..一点都没有成就感 #includ ...
- [LeetCode] 78. Subsets 子集合
Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be ...
- Visual Studio 2017 无法启动,进程中却有devenv.exe运行的解决办法
双击Visual Studio 2017,系统没有响应,在任务管理器中却发现devenv.exe 已经在运行. 解决办法:启动services.msc.找到Visual Studio Standard ...
- ng 使用阿里巴巴矢量图
1.进入阿里巴巴矢量图标库中,选择需要下载的图标,添加进项目中 2.进去项目选择Font class 模式,然后下载到本地 3.解压下载的压缩包,把.css/.svg/.ttf/.woff/.woff ...
- ant-design-pro引用css
ant-design-pro中默认只能引用less文件,引用了css文件也是无效的.所以需要在配置文件config.js中找到 cssLoaderOptions,在 getLocalIdent中加入 ...
- Prometheus 监控Docker服务器及Granfanna可视化
Prometheus 监控Docker服务器及Granfanna可视化 cAdvisor(Container Advisor)用于收集正在运行的容器资源使用和性能信息. 使用Prometheus监控c ...
- 图解微信小程序---获取电影信息
图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...
- 深入V8引擎-编译启动
记录一下步骤,方便以后换了电脑重新编译. 1.搞定depot_tools,git地址:git clone https://chromium.googlesource.com/chromium/tool ...