Netlify
Prisma Postgres用Netlify拡張機能は、NetlifyサイトをPrisma Postgresインスタンスに接続します。接続されると、拡張機能はデプロイされたNetlifyサイト上でDATABASE_URL
環境変数を自動的に設定します。
機能
- 本番環境およびプレビュー環境用のPrisma Postgres APIキーを自動生成。
- Netlifyサイトの環境設定を簡素化。
使い方
拡張機能をインストール
拡張機能をインストールするには、Prisma Postgres拡張機能ページの上部にあるInstallをクリックします。
Prisma Platformインテグレーション・トークンをNetlifyチームに追加する
NetlifyチームをPrisma Platformワークスペースに接続するには、以下の手順を一度だけ実行します
- あなたの.
- Netlifyに接続したいワークスペースを選択します。
- 左側のサイドバーでIntegrationsメニューに移動します。
- プロンプトに従って新しいNetlifyインテグレーション・トークンを作成し、トークンの値をコピーします。
- 上記のIntegration Tokenフィールドにトークンを貼り付けます。ワークスペースIDは自動的に入力されます。
- Saveをクリックしてセットアップを完了します。
このセットアップが完了すると、NetlifyチームがPrismaワークスペースに接続されます。これで、個々のNetlifyサイトをPrisma Postgresを使用するように設定できます。
NetlifyサイトにPrisma Postgresを追加する
Prisma Postgresを使用したいすべてのNetlifyサイトに対して以下の手順を実行します
- Netlifyでサイトビューに移動し、Extensionsセクションの下にあるPrisma Postgresをクリックします。
- Projectセレクターから、Netlifyサイトに接続したいPrismaプロジェクトを選択します。
- 本番環境の環境を設定します。
- プレビュー環境の環境を設定します。
- Saveをクリックしてサイトのセットアップを完了します。
- 拡張機能は、Prisma Postgresインスタンスを自動的に作成し、その接続URLを
DATABASE_URL
環境変数に保存します。
追加の考慮事項
プロジェクトでDATABASE_URL
環境変数を使用していることを確認する
schema.prisma
ファイルのデータソースがDATABASE_URL
環境変数を使用するように設定されていることを確認してください
// schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
package.json
のpostinstall
スクリプトでPrisma Clientを生成する
生成されたPrisma ClientライブラリがデプロイされたNetlifyサイトで利用できるようにするには、package.json
ファイルのscripts
セクションにpostinstall
スクリプトを追加する必要があります。
{
// ...
"scripts": {
// ...
"postinstall": "prisma generate --no-engine"
}
//
}
--no-engine
フラグは、クエリエンジンバイナリが生成されたPrisma Clientライブラリに含まれないようにします。Prisma Postgresを使用する場合は必要ありません。
例: Prisma PostgresでNext.jsテンプレートをデプロイする
このセクションには、Netlifyの公式Next.js Platform Starterテンプレートを使用して、Netlifyサイトをゼロからデプロイし、Prisma Postgresに接続する手順が示されています。
1. テンプレートを使用して新しいサイトを作成する
Netlifyチームで、テンプレートを使用して新しいサイトを作成します。
- 左側のサイドナビでSitesを選択します。
- Add new siteボタンをクリックします。
- ドロップダウンでStart from a templateを選択します。
- Next.js Platform Starterを選択します。
- プロンプトに従ってこのテンプレートをGitプロバイダーにクローンする。
- サイト名を入力し、Deploy siteボタンをクリックします。
これが完了すると、このスタータープロジェクトのデプロイ済みバージョンにアクセスできるようになります。
2. Prisma Postgresインスタンスをセットアップする
次に、Prisma Postgresインスタンスをセットアップします。
- ログインしてコンソールを開きます。
- 選択したワークスペースで、New projectボタンをクリックします。
- Nameフィールドにプロジェクトの名前を入力します(例:hello-ppg)。
- Prisma Postgresセクションで、Get startedボタンをクリックします。
- Regionドロップダウンで、現在の場所から最も近いリージョンを選択します(例:US East (N. Virginia))。
- Create projectボタンをクリックします。
DATABASE_URL
環境変数を保存します。これは次のセクションで必要になります。
3. ローカルでPrisma Postgresをプロジェクトに追加する
このセクションでは、Prisma Postgresをスタータープロジェクトにローカルマシンで追加します。
3.1. Prisma ORMをセットアップする
- ステップ1でGitHubアカウントに追加されたNext.js Platform Starterリポジトリをクローンします。
- プロジェクトディレクトリに移動します(例:
cd next-platform-starter
)。 - Prisma CLIを開発依存関係としてインストールします。
npm install prisma --save-dev
- Prisma ORMを初期化してPrismaスキーマと
.env
ファイルを作成します。npx prisma init
3.2. マイグレーションを実行し、サンプルデータを作成する
- 新しく作成された
schema.prisma
ファイルを開き、以下のモデルを追加します。schema.prismagenerator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
name String?
email String @unique
} - 新しく作成された
.env
ファイルを開き、前のセクションのDATABASE_URL
環境変数を貼り付けます。 User
モデルをデータベースにマッピングするために、最初のマイグレーションを実行します。npx prisma migrate dev --name init
- Prisma Studioを使用して、データベースに(少なくとも)1つの
User
レコードを作成します。npx prisma studio
3.3. アプリケーションコードを更新してUser
レコードをクエリして表示する
app/page.jsx
ファイルを開き、その内容全体をこのコードに置き換えます。
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient();
export default async function Page() {
const users = await prisma.user.findMany();
return (
<main className="p-8">
<h1 className="text-2xl font-bold mb-4">Users</h1>
<ul className="space-y-2">
{users.length > 0 ? (
users.map(user => (
<li key={user.id} className="p-4 border rounded shadow-sm">
<p><strong>ID:</strong> {user.id}</p>
<p><strong>Name:</strong> {user.name || 'N/A'}</p>
<p><strong>Email:</strong> {user.email}</p>
</li>
))
) : (
<p>No users found.</p>
)}
</ul>
</main>
);
}
このコードを配置したら、ローカルでアプリケーションを実行できます。
npm run dev
前のステップで作成したUser
レコードのリストが表示されるはずです。
3.4. postinstall
スクリプトを追加してPrisma Clientを生成する
上記で述べたように、Prisma Clientライブラリが適切に生成されるように、package.json
にpostinstall
スクリプトを追加する必要があります。
{
"name": "next-netlify-platform-starter",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"postinstall": "prisma generate --no-engine"
},
"dependencies": {
"@netlify/blobs": "^8.1.0",
"@prisma/client": "^6.3.0",
"@prisma/extension-accelerate": "^1.2.1",
"blobshape": "^1.0.0",
"bright": "^0.8.5",
"markdown-to-jsx": "^7.4.5",
"next": "15.1.6",
"react": "18.3.1",
"react-dom": "18.3.1",
"unique-names-generator": "^4.7.1"
},
"devDependencies": {
"autoprefixer": "^10.4.18",
"daisyui": "^4.12.8",
"eslint": "8.57.1",
"eslint-config-next": "15.1.6",
"postcss": "^8.4.36",
"prisma": "^6.3.0",
"tailwindcss": "^3.4.1"
}
}
4. Prisma Postgres用Netlify拡張機能を設定する
このセクションでは、NetlifyサイトにNetlify拡張機能を追加する必要があります。使い方のセクションにある指示に従って実行してください。
これらの手順を完了したら、Trigger deployボタンを見つけ、ドロップダウンでClear cache and deploy siteを選択します。
5. デプロイを検証する
Open production deployボタンをクリックして、デプロイされたサイトを開きます。これで、ステップ3の最後にアプリをローカルで実行したときと同じUIが表示されるはずです。