我已经使用 Azure DevOps 为 Azure PostgreSQL 数据库创建了管道。
管道实际上是做什么的?
- 连接到 PostgreSQL;
- 使用 Azure CLI 从 PostgreSQL 中删除数据库 db_test;
az postgres db delete -g my_group -s database_here -n db_test --yes
但是,由于错误,我不能这样做:
An unexpected error occured while processing the request.
然后,我尝试使用 psql 删除数据库,但由于与数据库的现有连接而没有运气。
从我的角度来看 - Azure CLI 必须处理此类问题并删除数据库或将正确的错误消息传递给我。例如,如果参数 --force 将被实现,那就太好了。
我已在 bash 脚本中使用以下语法删除了与数据库的所有连接:
psql "host=database_here port=5432 dbname=postgres user=postgres@database_here password=ReallyStrongPassword sslmode=require" -c "REVOKE CONNECT ON DATABASE db_test FROM PUBLIC; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'db_test';"
并将 DROP 数据库操作另外添加到我的管道中:
psql "host=database_here port=5432 dbname=postgres user=postgres@database_here password=ReallyStrongPassword sslmode=require" -c "DROP database db_test;"
但是我没有从管道中删除 AZ CLI 数据库删除步骤,它失败了,输出如下:
Operation failed with status: 200. Details: Resource state Failed
我认为在这一步中,AZ CLI 应该返回类似:“数据库不存在”。就像信息一样。
在 Azure 端如何正确处理此类情况?