Django 数据库迁移操作的回滚
Django 数据库的迁移通过 makemigrations
和 migrate
命令实现,其中 makemigrations
基于 models.py
的变更生成新的 migrations
文件, migrate
把 migrations
文件应用到数据库,也可以取消已应用的 migrations
文件。
Django 的数据库迁移操作
在 app 目录下的 models.py 文件中新增 class。
执行
makemigrations
命令生成迁移文件。使用
migrate
应用迁移文件。Django 迁移数据库后,会在 django_migrations 表中做记录,查询该表发现应用 myblog 最新的迁移 0002_test 已经被应用。
使用 migrate 命令实现数据迁移的回滚
使用 migrate 回滚最近一次迁移操作
应用 myblog 共有两次迁移操作,分别是:0001_initial和0002_test,使用 migrate
命令指定应用 myblog
以及 0001
。
python manage.py migrate myblog 0001
命令执行成功后,查询 django_migrations 表的记录,此时数据库表中仅有 0001
的记录,迁移回滚操作成功。
使用 migrate 回滚应用所有的迁移操作
执行 makemigrations
和 migrate
命令,执行数据库的迁移操作。
执行完成后,django_migrations 表出现 0002
迁移的记录。
使用 migrate 命令指定应用 myblog ,并指定要回滚的操作为 zero。
python manage.py migrate zero
查看 django_migrations 表,无应用 myblog 的迁移记录,数据库迁移回滚操作成功。