LoginSignup
18
24

More than 5 years have passed since last update.

LaravelでPostgreSQLを使うための設定メモ

Posted at

Laravel の公式ドキュメントが MySQL を使う前提になっているため、PostgreSQL を使うための設定をメモしておく。
(いろいろとまだ理解できていないので、あとで修正するかも)

前提条件

Laradock を使って Laravel をインストール済みであること。

.env (ホスト)

ホストからコンテナ内の PostgreSQL に接続する際に、すでに起動している PostgreSQL と競合しないようにポート番号 POSTGRES_PORT を変更しておく。

.env
# POSTGRES_DB=default
POSTGRES_DB=sample_db
POSTGRES_USER=default
POSTGRES_PASSWORD=secret
# POSTGRES_PORT=5432
POSTGRES_PORT=54320
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d

.env (コンテナ)

DB_HOSTpostgres に変更しておく。

docker-compose exec workspace bash
.env
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
# DB_DATABASE=default
DB_DATABASE=sample_db
DB_USERNAME=default
DB_PASSWORD=secret

データベース作成

コンテナ内に入り、psql コマンドで DB 接続し、データベース sample_db を作成する。

docker-compose exec workspace bash
psql -U default -h postgres
create database sample_db;

migrate を実行し、sample_db にテーブルが作られていれば正常に動作している(はず)。

php artisan migrate

コンテナ起動・停止

# 起動
docker-compose up -d nginx postgres

# 停止
docker-compose stop

# 状態確認
docker-compose ps

ホストからのDB接続

DBeaver から繋ぐ際の設定を載せておく。

スクリーンショット 2018-12-02 20.54.03.png

18
24
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
24