5
2

【supabase】Prismaのmigrationがいつまでも終わらない

Posted at

目次

  1. 状況
  2. 解決方法
  3. 解説
  4. それでも解決しない場合

状況

Next.jsで作成したアプリケーションにおいて、Prismaで定義したスキーマをデータベースに作成する際に次のコマンドを実行しました

npx prisma migrate dev --name init

このコマンドを実行すると、エラーは表示されないものの、処理が終了しないという問題が発生しています。

解決方法

Connection pooler ModelをTransaction modelからsession modelに変更する
スクリーンショット 2024-06-18 0.52.39.png
スクリーンショット 2024-06-18 0.52.50.png

解説

Transaction modelとsession modelでポート番号が違う
ポート番号6543=>5432

URIの形式

postgres://postgres.[USER]:[YOUR-PASSWORD]@[revision]:[port]/postgres

Transaction model

postgres://postgres.[USER]:[YOUR-PASSWORD]@aws-0-ap-northeast-1.pooler.supabase.com:6543/postgres

Session model

postgres://postgres.[USER]:[YOUR-PASSWORD]@aws-0-ap-northeast-1.pooler.supabase.com:5432/postgres

公式ドキュメントによると

  • session model
    • セッション モードは、データベースに直接接続するのと近い
  • transaction model
    • サーバーレス環境から接続する場合は、トランザクション モードが推奨

supabase公式ドキュメント/connection-pooler

それでも解決しない場合

  1. データベース接続の確認:データベースが正しく稼働しており、Prismaが接続できているか確認する
  2. Prismaの設定ファイル:prisma/schema.prismaや.envファイルが正しく設定されているか確認する
  3. ログの確認:Prismaのログやデータベースのログにエラーメッセージが出ていないか確認する
  4. コマンドの再実行:一度コマンドを中断して、再度実行してみる
  5. 依存関係の再インストール:node_modulesディレクトリを削除してから、npm installまたはyarn installを実行する
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2