Я настроил конвейер сборки на 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"