背景
Next.jsで個人開発しているカレンダーアプリにアクセスすると500エラーが返ってきた。
VercelでLogsを見ると以下のエラー文があった。
PrismaClientInitizationError:
invalid prisma.event.findMany() invocation:
やったこと
1. ローカルでTable plusを使って新しい接続URLのsupabaseに繋げにいけるかを確認
-
Host名、User名、Port番号が変更されていた。
-
supabase の Dashboard > プロジェクト名 > Project Settings > Database の Connection parameters を見ながら、Table PlusにDBを新規作成して入力 → 「Test」クリック
-
緑色になったので接続を確認できた。
2. VercelのDB接続設定(環境変数)を更新
Settings > Environment Variables > DATABASE_URL の「・・・」 > 「Edit」
DATABASE_URLを新しく変更されたものに更新する。
しかし、そのままだと別のエラー文(PrismaClientUnknownRequestError:
)が出るので、末尾に ?pgbouncer=true&connection_limit=1
を追記する。
- 変更前DATABASE_URL
postgresql://[db-user]:[db-password]@db.[project-ref].supabase.co:5432/[db-name]
- 変更後DATABASE_URL
postgres://[db-user]:[db-password]@aws-0-[aws-region].pooler.supabase.com:6543/[db-name]?pgbouncer=true&connection_limit=1
3. リデプロイをする
無事、サイトにアクセスできるようになった。
反省
去年の秋から継続してsupabaseから接続文字列の更新メールが来ていたのに、内容を見ずスルーしていた。今後、翻訳して内容を確認する癖をつけたい。