データベースのバックアップのスクリプトを作成しようとしていますが、フローの一部として、バックアップからデータベースを削除して再作成する必要があります。
データベースへの接続があると、次のような失敗メッセージが表示されます。
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 投稿からクエリを取得しました。アクティブな接続があるかどうかに関係なく、これを行うためのより信頼性の高い方法、またはデータベースを強制的に削除する方法はありますか?