怎么在django中利用迁移迁移文件

  介绍

怎么在django中利用迁移迁移文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

修改完模型。py后,先在终端下执行命令

python管理。py makemigrations

这是仅仅是生成迁移记录,执行过后,数据库中的表并未发生变化。若是模型发生改变,但是执行以上命令,显示的是

没有变化检测到

则需要执行

python管理。py makemigrations +你所改变的模型。py所在的目录

然后,要想表结构发生变化,还要执行以下命令

python管理。py迁移

执行完毕后,数据库中的表结构已经改变

<强>补充知识: <强> django使用迁移迁移版本和数据库中报错解决方案

回滚django的迁移:https://stackoverflow.com/questions/32123477/django-revert-last-migration

我# 39;ve  made  a  migration  that  added  a  new  table 以及want 用revert  it 以及delete 从而移民,without  creating  a  new 迁移。      请,do 小姐:do 吗?,Is  there  a  command 用revert  last  migration 以及then 小姐:还要simply  delete 从而migration 文件?         你还要revert  by  migrating 用,previous 迁移。      For 例如,,if  your  last  two  migrations 有:      0010年_previous_migration   0011年_migration_to_revert   Then 你would 做:      。/manage.py  migrate  my_app  0010 _previous_migration    你还要then  delete  migration  0011 _migration_to_revert。      If 你们# 39;re  using  Django  1.8 +,,你还要show 从而names  of  all 从而migrations       。/manage.py  showmigrations  my_app   用reverse  all  migrations  for  an 应用,,你还要运行:      。/manage.py  migrate  my_app  0

1到数据库表django_migrations中查看应用程序中看看应用程序列

怎么在django中利用迁移迁移文件

2,到项目对应的应用模块中打开迁移文件查看生成的文件与数据库应用程序列中的是不是一样

怎么在django中利用迁移迁移文件

3。找到哪里不一致的文件,然后使用python管理。py——假(版本名字),将这个版本标记为已经映射

<>强如果还是报错就按照下面执行

1,删除指定应用下迁移和数据库表django_migrations中和这个应用相关的版本号,

2,将模型中的字段和数据库中的字段保持一致,再使用命令python管理。py makemigrations重新生成一个初始化的迁移脚本。

3,再使用命令python管理。py makemigrations——fake-initial来将这个初始化的迁移脚本标记为已经映射之。后再修改就没有问题了。

更多关于迁移脚本的。请查看官方文档:https://docs.djangoproject.com/en/2.0/topics/migrations/

<强> makemigrations和迁移时django都做了什么?

makemigrations:

执行makemigrations时检测模型文件变化,在迁移文件夹中生成变更的sql的py文件

迁移:检测django_migrations表,迁移过的表会记录在其中并不再执行迁移,未找到执行记录则进行迁移

不要随意删除django项目目录下的迁移文件夹,里面会记录模型文件每次makemigrations操作,误删后,makemigrations会重新生成

<强> #执行python管理。py makemigrations命令时报错问题及解决办法:

在修改了模型。py后,有些用户会喜欢用python管理。py makemigrations生成对应的py代码。

但有时执行python管理。py makemigrations命令(也可能人比较皮,把迁移文件夹给删了),会提示“检测到任何更改!”可能有用的解决方式如下:

先python管理。py makemigrations——空yourappname生成一个空的初始。py

再python管理。py makemigrations生成原先的模型对应的移民文件

<强> django -关于管理。py迁移无效的问题

<强>问题描述:

已有的模型中,修改之后,想重新建模,于是将迁移文件夹中除__init__。py之外其他文件都删掉,再次执行以下步骤python管理。py makemigrations确认成功,执行python管理。py迁移,提示没有迁移应用。表示一脸懵逼。再次修改,指定表名,再次尝试,发现问题依旧,表示二脸懵逼

怎么在django中利用迁移迁移文件