(prisma)Can't reach database server at
nest.jsの学習を始めたところdocker composeでprismaコンテナとpostgresコンテナを立てている状態で、prismaからDBに接続できませんでした。
慣れた作業のはずなのに何故
結論
タイムアウトが原因でした。。。 for.kobayashiii.dev こちらの情報無かったら一生気づかなかったと思います。ありがとうございます。
以下調べてた時の様子になります。
DB設定(docker-compose.yaml)
dev-postgres: image: postgres:14.4-alpine ports: - 5432:5432 environment: POSTGRES_USER: user POSTGRES_PASSWORD: passwd POSTGRES_DB: db restart: always
prismaコンテナ内からサービス名dev-postgres
で接続できる(warning出てますが)
root@a8bdedef3739:/app# psql -h dev-postgres -p 5432 -U user -d db perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Password for user user: psql (11.21 (Debian 11.21-0+deb10u2), server 14.4) WARNING: psql major version 11, server major version 14. Some psql features might not work. Type "help" for help. db=#
prisma設定箇所
調査のため一時的に直書き
datasource db { provider = "postgresql" //url = env("DATABASE_URL") url = "postgresql://user:passwd@dev-postgres:5432/db?schema=public" }
prisma migrateでエラー
root@a8bdedef3739:/app# npx prisma migrate dev Environment variables loaded from .env Prisma schema loaded from prisma/schema.prisma Datasource "db": PostgreSQL database "db", schema "public" at "dev-postgres:5432" Error: P1001 Can't reach database server at `dev-postgres`:`5432` Please make sure your database server is running at `dev-postgres`:`5432`.
こういうエラーで時間取られると辛いですね。。