有没有办法回滚所有 django 应用程序迁移?

hoy*_*emd 10 django

我正在引导一个新的 django 项目,我的团队通常会制作一个“设置/重置”脚本来重建容器以及 drop(除非它尚不存在)并从头开始重建数据库。

我找到了manage.py flush删除数据的命令,但我还想恢复所有迁移。我只能找到一个用于一次回滚单个应用程序迁移的命令:

manage.py migrate <app_name> zero

有没有一种方法可以为每个应用程序执行此操作,或者我必须在脚本中列出它们?我们确实有manage.py migrate迁移所有内容的命令,所以我基本上只想要相反的命令。

如果这不容易实现,我可能只会删除数据库容器并重建数据库

谢谢!

amd*_*dan 15

好的方法是使用 Django 工具:

python manage.py migrate my_app zero
Run Code Online (Sandbox Code Playgroud)

反转数据库中的迁移反转迁移:Django doc

然后,手动删除 my_app/migrations 中不需要的迁移

最后,您回到干净的项目:

python manage.py makemigrations my_app
python manage.py migrate my_app
Run Code Online (Sandbox Code Playgroud)

享受 !!


yre*_*ehs 6

如果您有 django-extensions, python manage.py reset_db 听起来就像您正在寻找的。