55006: object_in_use
PostgreSQL意味
対象オブジェクト (通常はデータベース) が他のセッションに使用されているため、操作を実行できない。例えばアクティブな接続があるデータベースは削除できない。
原因
DROP DATABASE 時にデータベースへのオープン接続がある、使用中のオブジェクトに排他ロックが必要な操作、別のセッションがオブジェクトを保持している。
対処方法
対象データベースへのオープン接続を特定して終了させる: SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'db_name' AND pid <> pg_backend_pid(); (必要なら) 新しい接続をブロックする。PostgreSQL 13 以降では接続を強制的に閉じながら削除する: DROP DATABASE db_name WITH (FORCE);