やりたいこと
DB名を変えたい。
セッションが残っていてDB名の変更ができない
処理を実行すると、「他のユーザーからアクセスされています」と表示され、エラーによりDB名が変更できない。
セッションを確認する
以下のSQLで対象DBのpidを確認
1 |
select * from pg_stat_activity; |
2件残っているっぽい。2列目がDB名、3列目がpid。
セッションを削除する
2通りのやり方がある。1つ目はpidを指定してセッションを削除。
1 |
select pg_terminate_backend(pid); --ここにpidを入力 |
2つ目はDB名を指定して、対象DBのセッションを全て消す。こっちのほうが使いやすいかも。
1 2 3 |
select pg_terminate_backend(pid) from pg_stat_activity where datname = 'test'; |
セッションを確立するか聞かれるので、キャンセルを選択。
これで、DB名の変更や削除が可能になる
コメント