我已经在Azure上设置了一个构建管道来执行pytests等。另外,我还想检查是否没有遗漏任何迁移。
使用alembic
运行--autogenerate
命令将生成一个新的迁移文件(如果尚未存在)。
仅执行修订命令时
alembic revision --autogenerate
输出看起来像这样(1)
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [alembic.ddl.postgresql] Detected sequence ...
INFO [alembic.ddl.postgresql] Detected sequence ...
INFO [alembic.ddl.postgresql] Detected sequence ...
INFO [alembic.autogenerate.compare] Detected added column ...
Generating /.../alembic/versions/dc3dae7487df_.py ... done
我已经尝试了以下检查
[[ $(alembic revision --autogenerate | grep "^Generating.*done$") ]] && echo "test"
但是,grep似乎不适用于alembic输出,因为即使生成了新的迁移文件,我也从未收到echo test
。
运行命令
alembic revision --autogenerate | grep 'Generating.*done' | cat -v
生成(1)中的输出。
更改正则表达式也无法获得预期的结果
[[ $(alembic revision --autogenerate | grep "^[[:blank:]]*Generating.*done\r$") ]] && echo "test"
答案 0 :(得分:1)
考虑到我们的讨论,我们发现该蒸馏器输出将输出到stderr而不是stdout,这将满足我的要求:
[[ $(alembic revision --autogenerate 2>&1 | grep '^[[:blank:]]*Generating.*done[[:blank:]]*$') ]] && echo "test"
如果这仍然不是您想要的,请再次编辑问题以进一步阐明。