关于Django中的迁移文件

Posted zzmx0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Django中的迁移文件相关的知识,希望对你有一定的参考价值。

django开发中,如果说之前的迁移文件不小心删掉了或者换设备了(总之就是不好去找回之前的迁移文件了),此时想要在在数据库中加一些表,那么就需要做以下几步处理了:

1.首先就是在应用模型类中添加模型类(这是必须也是简单的,略)

2.由于之前迁移过,在数据库中会有一张表(名为:django_migrations),有这么一条记录,记录着迁移的文件名和应用名称还有时间。再次生成迁移文件,执行迁移时,会提示  No migrations to apply(没有迁移申请),此时有两种解决方案

  ①.修改0001_initial.py名。强迫症表示不能接受

  ②.将django_migrations表中删除这条数据

技术图片

 

3.删除后手动将0001_initial.py迁移文件中不需要迁移的模型类对应数据删除,否则将不能执行迁移

 技术图片

 

   删除后即可进行迁移。

   迁移还有一种情况,就是你把models中的定义的某些模型类删除了,迁移时会提示是否删除数据库中的该模型类对应的表,按需输入yes或no即可,我这里还需要这个表,所以输入no回车:

技术图片

 

 

再说说涉及到model更改的情况,创建迁移文件时可能会收到 No changes detected(未检测到更改) 的提示,此时需要创建一个空的迁移文件,再生成迁移文件

python manage.py makemigrations --empty ‘应用名
# 执行完上面再生成迁移文件
python manage.py makemigrations

以上是关于关于Django中的迁移文件的主要内容,如果未能解决你的问题,请参考以下文章

关于Django中ORM数据库迁移的配置

Django 1.6 到 1.11 Admin.py 迁移

将迁移添加到源代码管理并合并 Django 中的冲突迁移

我不小心删除了 Django 中的迁移文件夹

如何在压缩它们后删除 django 迁移?

使用 django-import-export 在 django 迁移中的外键