如何解决Django数据库makemigrations有变化但是migrate时未变动问题

看,田野里的玉米露出了笑脸,秋风吹过,闪烁着太阳的光芒,秋天是金色的。看满山的枫叶,红得就像一团火焰在熊熊燃烧,散发着生机,秋天是红色的。呵呵,我们都错了,秋天不是金黄的,也不是红色的,秋天是五颜六色的。

写models.py时缺少了一个 verbose_name,导致数据库出现问题,整了很久,摸索出重新建立数据库的方法:

首先删除每个app中的migrations中的除了init.py的文件,在数据库中清空所有的表,然后执行migrate,这时会自动生成系统默认的那些表,然后执行makemigrations,再执行migrate

如果只是众多应用中的一个出了问题的话,删除与之相关的表,然后进入django_migrations表中,将相应的app那项记录删除,然后再执行

makemigrations appname 
migrate

django_migrations表的作用:

在执行makemigrations后,会在app的migrations目录生成一个带有编号的py文件,这就是记录的数据库的变动和操作,当执行migrate后,django_migrations就会将上面生成的py文件记录下来,类似一个日志记录

初始的(只有自带的app时)表:

django_migrations中的初始内容如下:

以上这篇解决Django数据库makemigrations有变化但是migrate时未变动问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

您可能有感兴趣的文章
简单了解Django ContentType内置组件

django表单的Widgets如何使用详解

django Admin文档生成器如何使用详解

django 邮件发送模块smtp如何使用详解

django认证系统 Authentication如何使用详解