Accelerateの接続プールを使用してNeonをセットアップする
はじめに
このガイドでは、NeonでホストされているPostgreSQLデータベースにPrisma Accelerateを使用して接続プールを追加する方法を説明します。
Prisma Accelerateは、トラフィックの急増や高負荷のシナリオでもデータベースが適切に機能できるようにする、堅牢で成熟した接続プーラーです。負荷テストでのパフォーマンスを示すこのビデオを見るか、接続プーリングがなぜ重要であるかについて学びましょう。
前提条件
このガイドを完了するには、NeonでホストされているPostgreSQLインスタンスの接続文字列が必要です。通常、以下のようになります。
postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require
Prisma ORMを使用しているプロジェクトが既にある場合は、最初の2つのステップをスキップしてステップ3. Accelerate拡張機能のインストールに進むことができます。
1. Prisma ORMのセットアップ
まず、プロジェクトにPrisma CLIをインストールします。
npm install prisma --save-dev
次に、以下のコマンドを実行して新しいプロジェクトを初期化します。
npx prisma init
これにより、新しいprisma
ディレクトリがschema.prisma
ファイルと共に作成され、DATABASE_URL
環境変数を持つ.env
ファイルが追加されます。
ファイルを更新し、DATABASE_URL
をNeonの接続文字列に設定します。
DATABASE_URL="postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require"
2. データベースのイントロスペクト
次に、以下のコマンドを実行してデータベースをイントロスペクトし、データモデルを作成します。
npx prisma db pull
このコマンドはデータベースのスキーマを読み込み、データベース内のテーブルと一致する新しいモデルをschema.prisma
ファイルに作成します。
将来的にPrisma Migrateを使用したい場合は、データベースのベースラインを設定する必要もあります。
3. Accelerate拡張機能のインストール
Accelerate用のPrisma Client拡張機能をインストールします。
npm install @prisma/extension-accelerate
これはPrisma Accelerateの接続プールにアクセスするために必要です。
4. Prisma ConsoleでのAccelerateのセットアップ
Prisma ConsoleでAccelerateをセットアップするには、以下の手順に従います。
- にログインします。.
- New projectを選択します。
- プロジェクトの名前を選択します。
- Choose your starting productセクションで、Accelerateカードを見つけてGet startedをクリックします。
- Database connection stringフィールドに、Neonの接続文字列を貼り付けます。
- データベースに最も近いリージョンを選択します。
- Create projectをクリックします。
- 次の画面で、Enable Accelerateをクリックします。
これらの手順を完了すると、Generate API keyボタンをクリックする必要がある別のページにリダイレクトされます。
すると、Prisma Accelerateの接続プールに接続できる新しい接続URLが表示されます。これを.env
ファイル内の新しいDATABASE_URL
として設定する必要があります。
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..."
Prisma AccelerateでPrisma Migrateを使用したい場合は、datasource
ブロックにdirectUrl
フィールドを設定できます。
datasource db {
url = env("DATABASE_URL") // points to the connection pool for queries
directUrl = env("DIRECT_URL") // points to the database for migrations
}
それに応じて、.env
ファイルにDIRECT_URL
を設定する必要があります。
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..."
DIRECT_URL="postgresql://neondb_owner:[YOUR-PASSWORD]@ep-lingering-hat-a2e7tkt3.eu-central-1.aws.neon.tech/neondb?sslmode=require"
5. Prisma Clientの生成
Prismaスキーマが整ったら、Prisma Clientを生成できます。
npx prisma generate --no-engine
--no-engine
オプションは、生成されたPrisma Clientライブラリからクエリエンジンを省略するために使用されます。クエリエンジンはPrisma ORMの内部接続プールを管理しており、Prisma Accelerateを使用する場合は不要です。
6. 接続プール経由でクエリを送信
アプリケーションコードで、Prisma ClientインスタンスにAccelerate拡張機能を適用する必要があります。
import { PrismaClient } from "./generated/prisma"
import { withAccelerate } from "@prisma/extension-accelerate"
const prisma = new PrismaClient().$extends(withAccelerate())
この時点で、接続プールを介してデータベースにルーティングされるクエリの送信を開始できます。
Prismaとつながる
Prismaの旅を続けるには、以下とつながりましょう 活発なコミュニティに参加しましょう。情報を入手し、関わり、他の開発者と協力しましょう。
- Xでフォロー お知らせ、ライブイベント、役立つヒントをお届けします。
- Discordに参加 質問したり、コミュニティと話したり、会話を通じて積極的なサポートを受けたりできます。
- YouTubeを購読 チュートリアル、デモ、ストリームを視聴できます。
- GitHubで交流 リポジトリにスターを付けたり、問題を報告したり、問題に貢献したりしましょう。