📈

Supabase Prisma Migration エラー発生

2024/09/08に公開

npx prisma migrate dev --name init
MongoDBからPostgreSQLに変更する際に、何度もマイグレーションエラーが発生した。

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

去年作ったプロジェクトを参考にして同じように作ったのに、エラー6543とか、何度もエラーが出ている
一旦、去年使った方法は

DATABASE_URL="postgresql://postgres:[pw]@[db-name].supabase.co:5432/postgres"
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

できなかった、、
最近、バージョンが14にアップデートされて、DIRECT_URLが追加され、URLの書き方が変わったようだ

git Discussionsでも質問多かったけど、解決方法では

  • PWを文字列に変えて
  • ポスト番号を変えて
  • &pgbouncer=trueを追加して
  • ネットワークを確認して

などあった
https://github.com/prisma/prisma/discussions/23356

ダッシュボードでコピーしたほうが一番いいと
ConnectをクリックしてORMsにあるコード使う

schema.prismaも必ず変える

# Connection pooling with Supavisor (for application queries)
DATABASE_URL="postgresql://postgres.[db-name]:[pw]@aws-0-ap-northeast-1.pooler.supabase.com:6543/postgres?pgbouncer=true"

# Direct connection for migrations
DIRECT_URL="postgresql://postgres.[db-name]:[pw]@aws-0-ap-northeast-1.pooler.supabase.com:5432/postgres"

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider  = "postgresql"
  url       = env("DATABASE_URL") 
  directUrl = env("DIRECT_URL")
}

参考までに、私はMongoDBからPostgreSQLに変更したので、再インストールを何度もしてた

npm uninstall @prisma/client
npm install @prisma/client
npx prisma generate

上記の方法にやったのにできなかったらpsqlを使って本当に連携されているのか確認してもいいかも

psql postgresql://postgres:[pw]@aws-0-ap-northeast-1.pooler.supabase.com:5432/postgres

それでもできなかったら
https://github.com/prisma/prisma/discussions/23356#discussioncomment-9712872
ここに連絡しよう、、

▼公式サイト
https://supabase.com/partners/integrations/prisma

Discussion