1

データベースのバックアップのスクリプトを作成しようとしていますが、フローの一部として、バックアップからデータベースを削除して再作成する必要があります。

データベースへの接続があると、次のような失敗メッセージが表示されます。

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 投稿からクエリを取得しました。アクティブな接続があるかどうかに関係なく、これを行うためのより信頼性の高い方法、またはデータベースを強制的に削除する方法はありますか?

4

1 に答える 1