0

我已经使用 Azure DevOps 为 Azure PostgreSQL 数据库创建了管道。

管道实际上是做什么的?

  1. 连接到 PostgreSQL;
  2. 使用 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 端如何正确处理此类情况?

4

1 回答 1

1

是否az postgres db show显示数据库详细信息?请检查是否由于这种行为而发生这种情况,尽管引用线程中的讨论是在 SQL 数据库的上下文中进行的。

如果问题仍然存在,请随时在此处提交您的反馈,在我们的GitHub 存储库中打开一个问题,供我们的内部团队查看。

感谢您的反馈!

于 2019-10-22T02:34:50.813 回答