问题描述:

第一次执行迁移成功且数据库生成了表,接着,我把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. 触摸矫正+android,android触摸矫正解方程
  2. 网络抓包wireshark
  3. 假如我拥有字节工牌......
  4. python爬去学校_python爬取学校教务系统
  5. datagrid如何获取一行数据中的某个字段值_使用Mysql 数据库 新手常见问题
  6. 运行sp_xp_cmdshell_proxy_account 出现的错误
  7. xp系统开机自检很久_电脑开机不能自检的五大原因
  8. 使用ultramon调整任务栏高度
  9. mysql date string类型_mysql date类型与string转换
  10. oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化
  11. 【工具】55种开源数据可视化工具简介
  12. Java实验9 T3.对二进制数据文件中的所有数据求和
  13. Python进阶(四)Python中的异常
  14. paip.解决 数据库mysql增加列 字段很慢添加字段很慢
  15. MSFConsole 学习记录
  16. kali下java,kali java安装
  17. springboot-1-搭建一个springboot项目
  18. 计算机浮点数格式化表示方法,浮点数在计算机中是如何表示的
  19. 苹果超薄触摸显示技术专利曝光:重新定义轻薄
  20. 日语自我介绍 自己紹介・自己PR

热门文章

  1. ViDeNN: Deep Blind Video Denoising
  2. 3D视觉(一):双目摄像头的调用
  3. centos7 添加用户并授权root权限
  4. MyBatis 所有的 jdbcType类型
  5. jsplumb设置锚点_jsplumb
  6. 盘点一个Python自动化办公的实战案例
  7. mysql listagg within_Oracle的 listagg() WITHIN GROUP ()函数使用
  8. safe printk
  9. 几何级数(简单示例)
  10. [附源码]计算机毕业设计共享汽车系统