Laravel에서 PostgreSQL을 사용하기위한 설정 메모

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에서 연결할 때의 설정을 올려 둔다.

좋은 웹페이지 즐겨찾기