ご覧いただきありがとうございます!
領護(りょうご)です。
PostgreSQLデータベースの接続セッションの切断と再構築する手順を解説します。
実行環境
Ubuntu・・・20.04.4 LTS
PostgreSQL・・・14.2
データベースのセッションを切断する
まず、PostgreSQLのセッションを切断する方法を解説します。
sudo su - postgres
postgres@IPアドレス$
PostgreSQLの管理者であるpostgresユーザーにログインしてユーザーを切り替えます。
psql
postgres=#
「psql」と入力し、PostgreSQLのターミナルにアクセスします。
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'データベース名'
AND pid <> pg_backend_pid();
例
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'test_db'
AND pid <> pg_backend_pid();
指定したデータベースのセッションを切断します。
「データベース名」にはセッションを切断したいデータベース名を入力してください。
これでデータベースのセッションが切断されました。
データベースを削除する
次に、データベースの削除方法を解説します。
drop database データベース名;
例
drop database test_db;
「データベース名」には削除したいデータベース名を入力してください。
DROP DATABASE
削除が完了すると DROP DATABASEと表示されます。
これでデータベースの削除が完了しました。
データベースを作成する
次に、新しいデータベースを作成する方法を解説します。
postgres@IPアドレス$
「Ctrl」+「Z」を入力して、PostgreSQLのターミナルから離脱します。
postgresユーザーのシェルに戻ります。
createdb データベース名 --owner ユーザー名
例
createdb test_db --owner user
「データベース名」と「ユーザー名」を指定して新しいデータベースを作成します。
「ユーザー名」は、Ubuntuのユーザー名にしておくとログインが便利です。
データベースを確認する
最後に、データベースが正しく再構築されたか確認します。
exit
「exit」と入力して、postgresユーザーからログアウトし、Ubuntuユーザーに戻ります。
psql -U ユーザー名 -d データベース名
例
psql -U user -d test_db
作成したデータベースに接続します。
作成時に指定した「ユーザー名」と「データベース名」を入力して接続します。
データベース名=>\d
Did not find any relations.
(リレーションが見つかりませんでした。)
データベースのターミナルに接続できたら、「\d」と入力して、テーブル一覧を表示します。
テーブルがまだ作成されていない場合は、Did not find any relations.と表示されます。
これで、PostgreSQLデータベースの接続セッションの切断と再構築手順が完了しました。
最後に
PostgreSQLのデータベースの接続セッションを切断して削除する方法を解説しました。
Djangoなどで使用する場合は、セッションが接続されたままデータベースが削除できないことがあります。
是非この方法をお試しください!