ハマった点
Next.jsにおいて、PrismaでSupabaseと接続するために新しくマイグレーションを行おうとしました。
npx prisma migrate dev --name add_createdAt
しかし、以下のエラーが発生してうまくいきませんでした。
Error: P1001: Can't reach database server at `aws-0-ap-northeast-1.pooler.supabase.com:5432`
解決策
接続する際のURL内のパスワードに含まれる$が原因でした。特殊文字を含む場合はそれをパーセントエンコーディングする必要があるとのことです。(例:p@$$word
→p%40%24%24w0rd
)
DATABASE_URL
とDIRECT_URL
の両方について上記の方法で解決できました。
なおパーセントエンコーディングを用いず試行錯誤した結果、DATABASE_URL
についてはバックスラッシュによるエスケープ(例:$
→\$
)で、DIRECT_URL
については全くエスケープしないことでうまくいくことがわかりました。使う機会はないと思いますが、沼にはまらないための備忘録として…
参考文献