Open5

読者コミュニティ|【フルスタックアプリ入門】ブックマークアプリを作成しよう(Next.js & TypeScript & NextAuth & Prisma)

y4shiroy4shiro

本の内容を進める途中でエラーが発生したので質問いたします。

環境

  • MacBook Pro 13-inch, 2019, Intel Core i5
  • macOS Monterey 12.4
  • node v16.13.2
  • Docker version 20.10.17, build 100c701
  • docker-compose version 1.29.2, build 5becea4c

発生箇所

Chapter 07 Prisma を使ってテーブルを作成しよう
Prisma と PostgreSQL 上のデータベースとの接続

内容

下記コマンドでマイグレーションを実行するとエラーが発生する。

$ 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: P1010: User `root` was denied access on the database `mydb.public`

docker-compose.yml に記述したユーザー名とパスワード(root / secret) ではアクセス権限が無いと表示されてしまいます。
これを解決したいのですが、よろしければアドバイスなど頂けないでしょうか。

Docker コンテナにログイン後、psql で mydb に接続できる事を確認済みです。

bash-5.1# psql -U root -d mydb
psql (12.11)
Type "help" for help.

mydb=#

プロジェクトの現在の状態は GitHub に Push 済みです。
https://github.com/y4shiro/zenn-bookmark-app/tree/3fc5bcdb95fc42c085cfc1faa256b85480a84305

.env の内容は下記の通り。

DATABASE_URL="postgresql://root:secret@localhost:5432/mydb"
y4shiroy4shiro

こちらの質問ですが、私の環境に問題があり、
macOS 上で全く同じポートで PostgreSQL が立ち上がっている状態でした。
既存の PostgreSQL を終了後に改めて docker-compose up でコンテナを立ち上げるとマイグレーションが無事実行出来ました
お騒がせして申し訳ございません。

FarStepFarStep

こんにちは。
丁寧にご質問して頂き誠にありがとうございます。

先ほど、送っていただいたレポジトリを clone をし、マイグレーションを実行したところ、エラーは吐かれませんでした。

実行したコマンドは下記の通りです。

$ git clone git@github.com:y4shiro/zenn-bookmark-app.git
$ cd zenn-bookmark-app
$ docker-compose up
$ npm i

.env ファイルに下記を追加。

DATABASE_URL="postgresql://root:secret@localhost:5432/mydb"
$ npx prisma migrate dev --name init

大変お手数ですが、Docker コンテナ・ボリュームを削除した後、再度マイグレーションをしてみて頂けますでしょうか。

改善されない場合は、再度ご質問していただけると幸いです。
何卒よろしくお願いいたします。

FarStepFarStep

ご返信頂きありがとうございます。
いえいえ、解決して何よりです。

他に何か疑問点などありましたら、遠慮なくご質問して頂けると幸いです。
今後ともよろしくお願いします。