メインコンテンツへスキップ

Supabase

このガイドでは、Prisma ORM と Supabase の使用に関する概念について説明し、Supabase と他のデータベースプロバイダーとの共通点および相違点を解説し、Supabase と統合するためにアプリケーションを設定するプロセスをご案内します。

Supabaseとは?

Supabase は PostgreSQL ホスティングサービスであり、製品を構築するために必要なすべてのバックエンド機能を提供するオープンソースの Firebase の代替です。Firebase とは異なり、Supabase は PostgreSQL をベースにしており、Prisma ORM を使用して直接アクセスできます。

Supabase の詳細については、こちらのアーキテクチャこちらの機能 をご確認ください

他のデータベースプロバイダーとの共通点

Prisma ORM と Supabase の使用の多くの側面は、Prisma ORM を他のリレーショナルデータベースで使用する場合と同じです。引き続き、

具体的な考慮事項

Supabase で利用可能な 接続プーリング機能 を使用したい場合は、Supabase データベース設定 から利用できる接続プーリング接続文字列を、DATABASE_URL 環境変数の末尾に ?pgbouncer=true を追加して使用する必要があります

.env
# 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 環境変数を追加する必要があります

.env
# 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 を使用できます

schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}

directUrl フィールドに関する詳細は、こちらをご覧ください。

情報

DIRECT_URL に加えて、Supavisor との接続プーリングの使用を強くお勧めします。これにより、デプロイ戦略に関係なく接続をプールできるようになり、Prisma CLI の優れた開発者エクスペリエンスが得られます。これはすべてのアプリに厳密に必要ではありませんが、サーバーレスソリューションでは接続プーリングが不可欠になるでしょう。

Supabaseを使ってみる

さらに詳しく知りたい場合は、Supabase が提供するデータベースを Prisma プロジェクトに接続するための素晴らしいガイドが こちら にあります。

Supabase との統合で問題が発生した場合は、これらの 具体的なトラブルシューティングのヒント または Prisma の GitHub ディスカッション でさらにヘルプを確認してください。

© . All rights reserved.