ようやくLaravel9に触れる機会が訪れました。
postgresを使いたかったので、いつものように、
docker-compose.ymlを変更しようと思いきや、インストールの段階や、後からコマンドで追加できるんですね。
新規の場合
curl -s "https://laravel.build/example-app?with=pgsql" | bash
こんな感じで追加すると、postgresだけがインストールされます。忘れそう(笑)
後から追加する場合
sail経由でインストールに必要な、docker-compose.ymlを書き出すみたいなので、まずインスコすぐにsailを起動してから、sail:install を実行します。
sail up -d
sail artisan sail:install --with=pgsql
これでdocker-compose.ymlにpostgresのコンテナ情報が追記されます。
pgsql:
image: 'postgres:15'
ports:
- '${FORWARD_DB_PORT:-5432}:5432'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'sail-pgsql:/var/lib/postgresql/data'
- './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
networks:
- sail
healthcheck:
test:
- CMD
- pg_isready
- '-q'
- '-d'
- '${DB_DATABASE}'
- '-U'
- '${DB_USERNAME}'
retries: 3
timeout: 5s
sailを再up
sail down
sail up
でpostgresコンテナも一緒にsailが立ち上がります。
envの修正
DB_CONNECTION=pgsql
DB_HOST=mysql
DB_PORT=5432
もし、envがこのようになっている場合、mysqlのホストにアクセスがしてしまいエラーとなるので、
DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
きっちりhostを変更しておくこと。