我正在引导一个新的django项目,而我的团队通常会制作一个“设置/重置”脚本,该脚本将重建容器以及drop(除非它尚不存在)并从头开始重建数据库。
我找到了manage.py flush
命令来删除数据,但我也想恢复所有迁移。我只能找到一个命令来一次回滚单个应用程序的迁移:
manage.py migrate <app_name> zero
是否可以为每个应用程序做到这一点,还是必须在脚本中列出它们?我们确实有manage.py migrate
命令可以迁移所有内容,所以我基本上只想要相反的东西。
如果不可能的话,我可能只是将db容器放下并重建数据库
谢谢!
答案 0 :(得分:1)
python manage.py showmigrations | grep -P "^[^ ]" | xargs -I {app} python manage.py migrate {app} zero
如果不可能,我可能只是将db容器放下并重建数据库
老实说,删除数据库比让Django不应用容易得多。我只是添加此答案,以防有人想要单线用于其他目的。
答案 1 :(得分:0)
如果您具有django扩展名,则python manage.py reset_db听起来像您要找的东西。
答案 2 :(得分:0)
好的方法是使用Django工具:
python manage.py migrate my_app zero
要撤消数据库Reversing migrations : Django doc
中的迁移然后,手动删除my_app / migrations中不需要的迁移
最后,您又回到了干净的项目:
python manage.py migrate makemigrations my_app
python manage.py migrate my_app
享受!!