Supabase
このガイドでは、Prisma ORM と Supabase の使用に関する概念について説明し、Supabase と他のデータベースプロバイダーとの共通点および相違点を解説し、Supabase と統合するためにアプリケーションを設定するプロセスをご案内します。
Supabaseとは?
Supabase は PostgreSQL ホスティングサービスであり、製品を構築するために必要なすべてのバックエンド機能を提供するオープンソースの Firebase の代替です。Firebase とは異なり、Supabase は PostgreSQL をベースにしており、Prisma ORM を使用して直接アクセスできます。
Supabase の詳細については、こちらのアーキテクチャ と こちらの機能 をご確認ください
他のデータベースプロバイダーとの共通点
Prisma ORM と Supabase の使用の多くの側面は、Prisma ORM を他のリレーショナルデータベースで使用する場合と同じです。引き続き、
- Prisma Schema Language を使用してデータベースをモデリングできます
- スキーマで Prisma ORM の既存の
postgresql
データベースコネクタを使用し、Supabase が提供する 接続文字列 を併用できます - Supabase にデータベーススキーマがすでにある場合は、既存のプロジェクトで イントロスペクションを使用できます
db push
を使用してスキーマの変更を Supabase にプッシュできます- アプリケーションで Prisma Client を使用して Supabase のデータベースサーバーと通信できます
具体的な考慮事項
Supabase で利用可能な 接続プーリング機能 を使用したい場合は、Supabase データベース設定 から利用できる接続プーリング接続文字列を、DATABASE_URL
環境変数の末尾に ?pgbouncer=true
を追加して使用する必要があります
# Connect to Supabase via connection pooling with Supavisor.
DATABASE_URL="postgres://postgres.[your-supabase-project]:[password]@aws-0-[aws-region].pooler.supabase.com:6543/postgres?pgbouncer=true"
Prisma CLI を使用してデータベース上で他のアクション (例: マイグレーション) を実行したい場合は、CLI が Supavisor をバイパスできるように、datasource.directUrl
プロパティで使用する DIRECT_URL
環境変数を追加する必要があります
# Connect to Supabase via connection pooling with Supavisor.
DATABASE_URL="postgres://postgres.[your-supabase-project]:[password]@aws-0-[aws-region].pooler.supabase.com:6543/postgres?pgbouncer=true"
# Direct connection to the database. Used for migrations.
DIRECT_URL="postgres://postgres.[your-supabase-project]:[password]@aws-0-[aws-region].pooler.supabase.com:5432/postgres"
その後、schema.prisma
を更新して新しい直接 URL を使用できます
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
directUrl
フィールドに関する詳細は、こちらをご覧ください。
DIRECT_URL
に加えて、Supavisor との接続プーリングの使用を強くお勧めします。これにより、デプロイ戦略に関係なく接続をプールできるようになり、Prisma CLI の優れた開発者エクスペリエンスが得られます。これはすべてのアプリに厳密に必要ではありませんが、サーバーレスソリューションでは接続プーリングが不可欠になるでしょう。
Supabaseを使ってみる
さらに詳しく知りたい場合は、Supabase が提供するデータベースを Prisma プロジェクトに接続するための素晴らしいガイドが こちら にあります。
Supabase との統合で問題が発生した場合は、これらの 具体的なトラブルシューティングのヒント または Prisma の GitHub ディスカッション でさらにヘルプを確認してください。