psql --version
docker-compose.yml
に記載されているデータベース(PostgreSQL)に接続する方法を以下に説明します。
目次
1. 接続情報の確認
docker-compose.yml
からPostgreSQLの接続情報を確認します。
- ホスト:
localhost
またはコンテナ名laravel-postgres
- ポート:
5432
- データベース名:
laravel
- ユーザー名:
laravel
- パスワード:
secret
2. ローカルから接続
PostgreSQLクライアントを使用
PostgreSQLクライアントがインストールされていることを確認します。
psql --version
接続コマンドを実行します。
psql -h localhost -p 5432 -U laravel -d laravel
パスワードを聞かれたら、secret
を入力します。
3. コンテナ内から接続
PostgreSQLコンテナに入ります。
docker exec -it laravel-postgres bash
コンテナ内でPostgreSQLに接続します。以下のコマンドで、コンテナ内から直接データベースにアクセスできます。
psql -U laravel -d laravel
4. アプリケーションから接続
LaravelアプリケーションでPostgreSQLに接続する場合、.env
ファイルを編集します。
a. .env
ファイルの設定例
dotenvコードをコピーするDB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret
ここでDB_HOST=db
は、Docker Composeで定義したサービス名に一致しています。
b. Laravelの設定を反映
以下のコマンドを実行して設定をキャッシュします。
bashコードをコピーするdocker exec -it laravel-app php artisan config:cache
5. GUIツールを使用して接続
PostgreSQLに接続するためにGUIツール(例: pgAdmin、DBeaver)を使用することもできます。
a. 接続設定
GUIツールで以下を設定します:
- ホスト:
localhost
- ポート:
5432
- データベース:
laravel
- ユーザー名:
laravel
- パスワード:
secret
b. コンテナのネットワークを使用する場合
ホストをlaravel-postgres
に変更し、同じネットワーク上でツールを使用します。
接続確認
データベースに接続後、簡単なクエリを実行して動作を確認します。
SELECT 1;
パスワードを聞かれたら、secret
を入力します。
laravel=# SELECT 1;
secret
?column?
----------
1
(1 row)
laravel-#
psql
(PostgreSQLクライアント)からの終了
psql
(PostgreSQLクライアント)からの終了
psql
を使用してデータベースに接続している場合:
laravel-# \q
root@537430da4f98:/#
これで、PostgreSQLクライアントから切断されます。
Dockerコンテナ内での接続終了
PostgreSQLコンテナ内でpsql
を使用している場合も、同様に以下を入力します:
\laravel-# \q
root@537430da4f98:/#
その後、コンテナからも退出する場合は:
root@537430da4f98:/# exit
exit
PS D:\
GUIツール(pgAdminやDBeaverなど)からの終了
GUIツールを使用している場合、単に接続を閉じるか、アプリケーションを終了します。
- 接続を右クリック → 「Disconnect(切断)」または「Close Connection(接続を閉じる)」。