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

Accelerateの接続プールを使用してNeonをセットアップする

15分

はじめに

このガイドでは、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の接続文字列に設定します。

.env
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をセットアップするには、以下の手順に従います。

  1. にログインします。.
  2. New projectを選択します。
  3. プロジェクトの名前を選択します。
  4. Choose your starting productセクションで、Accelerateカードを見つけてGet startedをクリックします。
  5. Database connection stringフィールドに、Neonの接続文字列を貼り付けます。
  6. データベースに最も近いリージョンを選択します。
  7. Create projectをクリックします。
  8. 次の画面で、Enable Accelerateをクリックします。

これらの手順を完了すると、Generate API keyボタンをクリックする必要がある別のページにリダイレクトされます。

すると、Prisma Accelerateの接続プールに接続できる新しい接続URLが表示されます。これを.envファイル内の新しいDATABASE_URLとして設定する必要があります。

.env
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..."

Prisma AccelerateでPrisma Migrateを使用したい場合は、datasourceブロックにdirectUrlフィールドを設定できます。

schema.prisma
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を設定する必要があります。

.env
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で交流 リポジトリにスターを付けたり、問題を報告したり、問題に貢献したりしましょう。
皆様のご参加を心よりお待ちしております!コミュニティの一員としてお迎えできることを楽しみにしています!

© . All rights reserved.