Postgresqlを使用している時、データベースの削除などをした時下記のようなエラーが表示された時の対処

PG::ObjectInUse: ERROR: データベース"database_name"は他のユーザからアクセスされています
DETAIL: 他にこのデータベースを使っている 1 個のセッションがあります。

エラー文の通り操作しようとしているデータベースにアクセスしているユーザがいるためなので、このユーザを強制的に追い出します。

まずアクセスしているユーザを調べます。

“`

SELECT * FROM pg_stat_activity;

“`

該当ユーザのprocidとusernameをメモし、追い出します

“`

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE usename = ‘usename’;

“`

 

以上

Source: New feed