django makemigrations --检查输出?

fou*_*deg 5 django

我尝试在 CI 中结合 makemigrations 命令的两种行为:

  • makemigrations --check当需要生成迁移文件时将返回非零
  • makemigrations --dry-run将打印有关未生成的迁移的详细信息
  • makemigrations --check --dry-run行为如下makemigrations --check(自 Django 4.2 起)。

如果存在未生成的迁移,我的 CI 脚本需要失败,如果它也描述了丢失的迁移,将会很有帮助。

bash除了涉及这两个选项的一些技巧之外,还有更干净的方法吗?

Geo*_*ugh 2

--check --dry-run对于我也在使用的用例来说,这似乎是一个不幸的回归。

我认为现在没有办法不用跑makemigrations两次就能做到这一点。如果有人只是想要一个快速解决方案,“bash 技巧”将类似于:

./manage.py makemigrations --no-input --dry-run && ./manage.py makemigrations --check
Run Code Online (Sandbox Code Playgroud)

但我更喜欢用来tox运行这些东西,tox.ini你可以简单地使用两个命令,例如:

[testenv]
commands =
         python manage.py makemigrations --no-input --dry-run
         python manage.py makemigrations --check
Run Code Online (Sandbox Code Playgroud)