👻

【Supabase】"Error: P1001: Can't reach database server at XXX"の解消方法

に公開

症状

自分のPC上で構築したNext.js+prisma+Supabaseの構成で、Next.jsのアプリから

npx prisma migrate dev --name init

でSupabaseへテーブル作成(migrate)しようとすると、以下のようなエラーが発生しました。

Error: P1001: Can't reach database server at `aws-0-ap-northeast-1.pooler.supabase.com:5432`

その時の解消方法を記載します。
(dockerを使った構成の情報が多くヒットしましたが、私のように自分のローカルPCからのエラーに関する情報が少なかったため)

解消方法

  1. Supabaseの画面のヘッダー部分にある[connect]をクリックして、[ORMs]のタブに移動

  2. [Tool]の部分が[Prisma]になっていることを確認して、[.env.local]の内容をコピーして、自分の.envファイルに貼り付ける

  3. [YOUR PASSEORD]の部分をデータベース作成時に設定したパスワードに書き換える(DATABASE_URLDIRECT_URLの両方。両端のカッコも不要!)

  4. [prisma/schema.prisma]のタブの内容をコピーして、自分のprisma/schema.prismaに貼り付ける(最初から記載されている内容は削除)

  5. psql <.envに記載したDIRECT_URL>を実行してデータベースにアクセスできることを確認する

  6. 無事にアクセスできたら再度マイグレーションのコマンドを実行する

Discussion