Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 验证管道生成中的alembic迁移_Bash_Alembic_Build Pipeline - Fatal编程技术网

Bash 验证管道生成中的alembic迁移

Bash 验证管道生成中的alembic迁移,bash,alembic,build-pipeline,Bash,Alembic,Build Pipeline,我已经在Azure上设置了一个构建管道来执行pytests等。此外,我还想检查是否没有遗漏任何迁移 使用--autogenerate运行alembic命令将生成一个新的迁移文件,以防它还不存在 单独执行修订命令时 alembic revision --autogenerate 输出如下所示(1) 我用下面的支票试过了 [[ $(alembic revision --autogenerate | grep "^Generating.*done$") ]] && echo "t

我已经在Azure上设置了一个构建管道来执行pytests等。此外,我还想检查是否没有遗漏任何迁移

使用
--autogenerate
运行
alembic
命令将生成一个新的迁移文件,以防它还不存在

单独执行修订命令时

 alembic revision --autogenerate
输出如下所示(1)

我用下面的支票试过了

 [[ $(alembic revision --autogenerate | grep "^Generating.*done$") ]] && echo "test"
但是,grep似乎无法处理alembic输出,因为即使生成了新的迁移文件,我也从未收到
echo测试

运行命令

alembic revision --autogenerate | grep 'Generating.*done' | cat -v
产生如(1)所示的输出

更改正则表达式也不会得到预期的结果

[[ $(alembic revision --autogenerate | grep "^[[:blank:]]*Generating.*done\r$") ]] && echo "test"

在我们的讨论中,我们发现alembic输出将被发送到stderr而不是stdout,这将满足您的要求:

[[ $(alembic revision --autogenerate 2>&1 | grep '^[[:blank:]]*Generating.*done[[:blank:]]*$') ]] && echo "test"
如果这仍然不是你想要的,那么再次编辑你的问题以进一步澄清

[[ $(alembic revision --autogenerate 2>&1 | grep '^[[:blank:]]*Generating.*done[[:blank:]]*$') ]] && echo "test"