我正在尝试编写数据库备份的脚本,部分流程是我需要删除然后从备份中重新创建数据库。
当有与数据库的连接时,我会收到如下失败消息:
DETAIL: There are 2 other sessions using the database.
我一直在寻找一种方法来忽略此问题或在删除数据库之前终止连接。我正在尝试使用下面的查询,但它似乎实际上不允许我在运行它后删除数据库。
-- Drop connections
\set database_name `echo $DB_NAME`
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = ':database_name'
AND pid <> pg_backend_pid();
我从似乎暗示可以使用的 SO 帖子中获取查询,是否有更可靠的方法来执行此操作或强制删除数据库的方法,无论是否有活动连接?