Closed AyumuOgasawara closed 1 week ago
compose.ymlの設定
db:
image: postgres
restart: always
# set shared memory limit when using docker-compose
shm_size: 128mb
volumes:
- postgres_volume:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: receiptScanner
ports:
- 5432:5432
.env
DATABASE_URL="postgresql://postgres:receiptScanner@localhost:5432/mydb?schema=public"
schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
以下を実行する
npx prisma migrate dev --name init
エラーメッセージ
ayumu@AyumunoMacBook-Air receipt-scanner % npx prisma migrate dev --name init
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "mydb", schema "public" at "localhost:5432"
Error: P1000: Authentication failed against database server at `localhost`, the provided database credentials for `postgres` are not valid.
Please make sure to provide valid database credentials for the database server at `localhost`.
パスワードは通っているか確認するために、dbeverで実行してみたが認証がうまくいかなかった。
実行写真
postgresのボリュームをcompose.ymlで作成しており、それを削除し、再びコンテナを立ち上げるとうまく行った。
以下のコマンドでボリュームを削除した
docker volume rm $(docker volume ls)
prismaで .env.local を読み込むために dotenv-cliをインストールした
migrationを実行する際は以下のコマンドで実行する。
./node_modules/.bin/dotenv -e .env.local -- npx prisma migrate dev
compose.ymlのPOSTGRES_PASSWORD
を直書きでないとうまく動かない。。
とりあえず、HACK
でコメントをしている。
migrationを実行する際は以下のコマンドで実行する。
./node_modules/.bin/dotenv -e .env.local -- npx prisma migrate dev
動作確認をすると、prisma client側でenvファイルを参照しており、うまく動かなかった。 そのため、dotenvをアンインストールし、envファイルを使用するようにする。
.env
ファイルを.gitignore
に入れ、.env.default
を作成し、ここに環境変数の例を書いていく。
概要
prismaを使用して、データベースのテーブルを作成する。