Django开发:将migrations文件恢复到状态0001的方法和步骤
如果Django开发过程中数据库变化太大,migrations文件数量增加,管理起来会非常困难。幸运的是,Django 提供了一种方法来做到这一点。这些文件被重置为0001状态,而不删除原始数据。
确认迁移文件已与数据库同步
| 1 | $ python3 manage.py create migrations |
如果询问No Changes detector,则数据会同步。
查看当前迁移文件记录
| 1 | $ python3 manage.py show migrations |
| 123456789101112131415161718192021222324 | admin [X] 0001_initial [ [X] 0003_logentry_add_action_flag_choicesauth [X] 0001_initial [ X] 0002_alter_permission_name_max_length [ ] 0003_alter_user_email_max_length [X] 0004_alter_user_username_opts [X] 0005_alter_user_last_login_null [X] 0006_require_contenttypes_0002 [ [ 0009_alter_user_last_name_max_length [X] 0010_alter_group_name_max_length [X] 0011_update_proxy_permissionscontenttypes [X] 0001_initial [X] 0002_remove_content_type_nameisite [X] 0001_initial [X] 0002_article_pub_date会话 [X] 0001_initial |
重置文件
| 1 | python3 manage.py migrate --假 mysite 零 # mysite 是应用程序的名称 |
删除 migrations 的 init.py 中的其他文件
重现迁移文件
| 1 | $python3管理.py使migrations |
与数据库同步
| 1 | python3管理.py迁移--fake-执行初始 |
| 1234 | 编辑:应用所有migrations:admin、auth、content types、isite、sessions执行migrations: 应用isite.0001_initial... FAKED |
fake表示模仿执行过程,但不适用于为了应用它。事实。
这些更清爽。
场景1
无论数据库信息如何,都可以完全删除数据库。
步骤:
删除 migrations
| 12 | 找到的所有内容。 -路径"*/migrations/*.py"-不是 -名称“__init__。 py " -删除查找。 -路径 "*/migrations/*.pyc" -删除 |
删除数据库
重新生成migrations
| 12 | python manage.py make migrationspython manage.py migrate |
场景2
是的有时候我们直接导入整个数据库,包括数据。在这种情况下,我们不能简单地删除数据库。
我们此时的目标是清除数据库中的迁移历史,保证以后的迁移能够正常使用,但其他数据必须保留。
步骤:
从数据库中删除所有非 0001_initial 迁移历史记录
| 1 | DELETE FROM django_migrationsTRUE应用程序 IN ('您的','应用程序','标签' ) EN 姓名 != '0001_initial' |
使用 migrate 命令恢复 0001_initial 的迁移历史
| 123 | python manage.py 迁移 - -假装你的零python manage.py migrate --假应用程序零python manage.py migrate --假标签零 |
重新生成0001_initial,如果你确定 0001_initial 是最新的,可以跳过这一步
| 1234 | find 。 -路径"*/migrations/*.py"-不是-名称“__init__。 py " -删除查找。 -路径"* /migrations/*.pyc" -删除python manage.py create migrations |
在中生成一条新的 0001_initial 记录数据库
| 1 | python 迁移 - -假-初始 |
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
