Django重置迁移文件的方法步骤

  

Django开发过程中如果数据库变动过多导致迁移的文件越来越多,管理起来很不方便,幸运的是Django提供了一种方式可以是这些文件重置到0001状态,而且不删除原有数据。

  

<强>确认迁移文件跟数据库同步
  

        美元python3管理。py makemigrations      

如果提示发现没有变化那么数据就是同步的。

  

<强>查看当前移民文件记录
  

        美元python3管理。py showmigrations   之前            管理   0001 _initial [X]   0002 _logentry_remove_auto_add [X]   0003 _logentry_add_action_flag_choices [X]   身份验证   0001 _initial [X]   0002 _alter_permission_name_max_length [X]   0003 _alter_user_email_max_length [X]   0004 _alter_user_username_opts [X]   0005 _alter_user_last_login_null [X]   0006 _require_contenttypes_0002 [X]   0007 _alter_validators_add_error_messages [X]   0008 _alter_user_username_max_length [X]   0009 _alter_user_last_name_max_length [X]   0010 _alter_group_name_max_length [X]   0011 _update_proxy_permissions [X]   contenttypes   0001 _initial [X]   0002 _remove_content_type_name [X]   isite   0001 _initial [X]   0002 _article_pub_date [X]   会话   0001 _initial [X]   之前      

<强>重置文件
  

        python3管理。py迁移——假mysite 0 # mysite是应用的名称      

删除迁移的处init.py的其他文件

  

<强>重新生产迁移文件
  

        美元python3管理。py makemigrations      

<强>同步到数据库
  

        python3管理。py迁移——fake-initial            执行操作:   应用所有迁移:管理、身份验证、contenttypes isite,会话   迁移:   应用isite.0001_initial……伪造      

假是假冒伪装的意思。执行过程,但不应用数据。

  

这些就清爽多了。

  


  

  

不考虑数据库数据,可以完全清空数据库。

  

步骤:   

删除所有迁移

        找到。/* */迁移路径”。py __init__“——- name”。py”删除   找到。/* */迁移路径”。佩克”删除   之前      

删除数据库
  

  

重新生成迁移

        python管理。py makemigrations   python管理。py迁移      


  

  

有时候我们会直接导入完整的数据库,包括数据,这种情况下就不能简单的清空数据库。
  

  

这时我们的目的就是:清空数据库的移民历史,保证以后的迁移能正常使用,但要保留其他数据。

  

步骤:   

从数据库中删除所有非0001 _initial的迁移历史

        删除从django_migrations应用在(“你”、“应用”、“标签”)和名字!=' 0001 _initial '   之前      

使用迁移命令回滚0001 _initial的迁移历史

        python管理。py——假你零迁移   python管理。py——假应用零迁移   python管理。py迁移——假标签为零   之前      

重新生成0001 _initial,如果能保证已有0001 _initial已是最新的,可跳过此步

        找到。/* */迁移路径”。py __init__“——- name”。py”删除   找到。/* */迁移路径”。佩克”删除      python管理。py makemigrations      之前      

在数据库中生成新0001年的_initial记录

        python迁移——fake-initial      之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Django重置迁移文件的方法步骤