Open1
Prisma+MySQLの構成をPrisma+Supabaseに変更する。

Nest.js+Prisma+MySQLでバックエンドを構成したが、認証機能の追加が必要になったため、認証機能を提供している、Supabaseを使用できるようにする。
Supabaseプロジェクトの作成
Supabaseへサインアップし、新規のプロジェクトを作成する。
設定したパスワードを控えておく。
接続情報の取得
下図のConnectを押下する
ORMsを押下し、「Connect to Supabase via connection pooling with Supavisor.」のURLをコピーしておく
.envファイルの設定
下記を.envファイルに記載しておく
DATABASE_URL="postgresql://postgres.[PROJECT-REF]:[YOUR-PASSWORD]@aws-0-ap-northeast-1.pooler.supabase.com:6543/postgres?pgbouncer=true"
YOUR-PASSWORDには最初に控えておいたパスワードを入れる
※コネクションプーリング: Supabaseを使用する際は、コネクションプーリングの設定が推奨されます。これにより、接続の効率が向上します。接続URIの末尾に?pgbouncer=trueを追加することで、コネクションプーリングを有効にできます。
マイグレーションの実行
dockerで環境構築をしているので、下記のコマンドでマイグレーションを実行し、Supabaseにテーブルを作成する。
docker-compose exec nest npx prisma migrate dev --name init
ここで、すでにマイグレーションファイルがある場合、下記のエラーが出る場合がある
Error: P3019
The datasource provider `postgresql` specified in your schema does not match the one specified in the migration_lock.toml, `mysql`. Please remove your current migration directory and start a new migration history with prisma migrate dev. Read more: https://pris.ly/d/migrate-provider-switch
上記が出た場合、prisma/migrationsを削除し、再度マイグレーションを実行する。
Prisma Clientの生成
Prisma Clientを生成するために、以下のコマンドを実行する
docker-compose exec nest npx prisma generate
Prisma Clientとは