问题描述:

第一次执行迁移成功且数据库生成了表,接着,我把pycharm中的迁移文件、数据库表直接删掉,重新执行迁移,发现失败,日志如下:

Running migrations:
  No migrations to apply.

(venv) D:\360MoveData\Users\lenovo\Desktop\django_auto_test>python manage.py makemigrations study
Migrations for 'study':study\migrations\0001_initial.py- Create model AllField(venv) D:\360MoveData\Users\lenovo\Desktop\django_auto_test>python manage.py migrate
Operations to perform:Apply all migrations: admin, auth, contenttypes, polls, sessions, study
Running migrations:No migrations to apply.

很显然,生成迁移文件是成功的,但是没能成功执行迁移,原因是没被应用到数据库。

解决过程:

1、问题分析

(1)可能是django认为迁移文件与之前相同而没有执行

(2)可能是翻译成的sql语句,不包含创建表的过程

(3)可能存在缓存问题

2、从最易执行的操作入手,用排除法尝试解决

(1)重启pycharm,并执行,未能解决,排除

(2)查看翻译成的sql语句,包含了创建表的过程,未能解决,排除

python manage.py sqlmigrate study 0001

翻译成sql语句如下:

BEGIN;
--
-- Create model AllField
--
CREATE TABLE "study_allfield" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "BigIntegerField001" bigint NOT NULL, "BinaryField001" BLOB NOT NULL, "Boo
leanField001" bool NOT NULL, "CharField001" varchar(10) NOT NULL, "DateField001" date NOT NULL, "DateTimeField001" datetime NOT NULL, "DecimalField001" de
cimal NOT NULL, "DurationField001" bigint NOT NULL, "EmailField001" varchar(254) NOT NULL, "FileField001" varchar(100) NOT NULL, "FilePathField001" varcha
r(100) NOT NULL, "FloatField001" real NOT NULL, "GenericIPAddressField001" char(39) NOT NULL, "ImageField001" varchar(100) NOT NULL, "IntegerField001" int
eger NOT NULL, "PositiveBigIntegerField001" bigint unsigned NOT NULL CHECK ("PositiveBigIntegerField001" >= 0), "PositiveIntegerField001" integer unsignedNOT NULL CHECK ("PositiveIntegerField001" >= 0), "PositiveSmallIntegerField001" smallint unsigned NOT NULL CHECK ("PositiveSmallIntegerField001" >= 0), "
SlugField001" varchar(50) NOT NULL, "SmallIntegerField001" smallint NOT NULL, "TextField001" text NOT NULL, "TimeField001" time NOT NULL, "URLField001" va
rchar(200) NOT NULL, "UUIDField001" char(32) NOT NULL);
CREATE INDEX "study_allfield_SlugField001_8c0c6e08" ON "study_allfield" ("SlugField001");
COMMIT;

(3)django认为迁移文件与之前相同而没有执行,这个。。。不好解决

想一下,django发出了迁移文件的请求,经过了数据库,返回了No migrations to apply.

对于django来说,执行的迁移记录会记录在数据库的表中,如果名称一致,将不会执行。

考虑到本地删除了迁移文件,重新生成的迁移文件又是从001开始,相同迁移记录不执行的概率很大,于是检查数据库的相关表如下:

尝试删除该记录再重新执行迁移,发现执行成功(解决问题后,反而感觉索然无味了,没意思):

django:执行迁移失败问题相关推荐

  1. pta段错误是什么意思_用Python执行Django数据迁移时报!(1091错误及解决方法)...

    前言: 今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家! 前几天在Pycharm 中的Terminal下 ...

  2. 用Python执行Django数据迁移时报!(1091错误及解决方法)

    前言: 今天为大家带来的内容是用Python执行Django数据迁移时报!(1091错误及解决方法)本文内容具有不错的参考意义,希望在此能够帮助到大家! 前几天在Pycharm 中的Terminal下 ...

  3. Django无法执行迁移文件

    前提 前提 前提 :         必须安装了两个底层包  pymysql 和 mysqlclient 今天分享使用用 IDE,pycharm中的Django来对mysql数据库进行生成数据迁移和执 ...

  4. django数据库迁移需注意的问题

    django迁移 django迁移就是在django的models.py中创建数据库表,有django自己规定的数据库操作语法. 直接使用SQL非常麻烦,Django附带了一个对象关系映射器,简称OR ...

  5. 完美解决django 在迁移数据库的时候出现的1146错误

    完美解决django 在迁移数据库的时候出现的这个错误 ------>django.db.utils.ProgrammingError: (1146, "Table 'django_d ...

  6. 数据库数据迁移失败,如何进行修复操作

    云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和全SSD盘高性能存储,支持MySQL.SQL Server.Postgre ...

  7. django 数据迁移 (migrations)

    表已存在_错误参考 迁移常见错误解决方案 django官网迁移教程 执行启动迁移 DJANGO_ENV='test' python manage.py makemigrations --setting ...

  8. android tmp目录权限不够,/tmp目录下执行脚本失败提示Permission denied

    Linux上执行Shell脚本运行失败提示Permission denied一个问题,挺好的问题,切中了知识盲点. 问题现象 Shell脚本在/tmp目录下,执行./test.sh运行失败,提示Per ...

  9. ef core mysql 生成迁移失败_EF Core 数据库迁移(Migration)

    标签: 工具与环境介绍 1.开发环境为vs 2015 场景 设计两张表 用户表(user)和发帖表(user) 一个用户对应多个用户 Coding Begin 1.新建项目(新建一个空console项 ...

最新文章

  1. Java各版本的重大改变
  2. Python中文分词--jieba的基本使用
  3. pip安装软件时出现Command python setup.py egg_info failed with error code 1 in /tmp/pip-build*的解决方案
  4. golang实现自定义驱动的Cache
  5. 关于c#:Filter Serilog日志取决于上下文源到不同的接收器?
  6. Asp.NET Core 轻松学-项目目录和文件作用介绍
  7. AtomicStampedReference源码分析
  8. vue2 关于开发插件的几点思考
  9. 定时器Timer和播放器MediaPlayer
  10. Weblogic常用监控指标
  11. 如何在B站读一个深度学习的研究生?
  12. oracle替换字符串replace
  13. MPC5744P-时钟模块
  14. 基于SSM开发的的小区物业管理系统小程序源码
  15. 环形链表与快慢指针的关系
  16. LaTeX 中常用的导数符号命令
  17. 【程序员必备】七夕表白攻略:教你用代码轻松打动她的内心!
  18. 机器人螺栓拆装_机器人拧螺栓:重庆高端装备制造企业的转型之路
  19. 【数据可视化工具DataEase】如何修改内置 MySQL 容器名
  20. 用Java根据π/4=1-1/3+1/5-1/7...计算pi的值

热门文章

  1. Android color大全
  2. 学习OpenGL:光源的种类和实现
  3. Win7命令提示符输入taskkill提示不是内部或外部命令
  4. 攻防技术基础笔记一——病毒、蠕虫病毒、木马、软件漏洞、常见问题、漏洞成因、黑产产业链、遵纪守法、渗透测试、渗透测试方法、VMware的使用、认识kali
  5. 【UE4 003】 材质表达式 植被(花)制作
  6. Java实现 蓝桥杯 猜算式
  7. Linux驱动开发-编写VS1053芯片音频驱动
  8. java-net-php-python-jsp大学生兼职雇佣系统计算机毕业设计程序
  9. OC门、OD门和推挽输出
  10. 证件识别OCR技术特点