Communityコーディング&開発github.com

prisma/prisma-compute

Prisma Compute のデプロイとホスティングガイド。Prisma Compute、`prisma.compute.ts`、`defineComputeConfig`、デプロイ、ホスティング、`@prisma/cli app deploy`、`compute:deploy`、`create-prisma --deploy`、`PRISMA_SERVICE_TOKEN`、Compute 認証/ワークスペース、アプリ/デプロイメント/ビルドログ/ドメイン、localhost と `0.0.0.0`、デプロイポートバインディング、Hono、Elysia、Next.js、TanStack Start、Astro、Nuxt、Svelte、Nest、Turborepo などのフレームワークデプロイ対応状況について使用します。

prisma-compute とは?

Prisma Compute は、Prisma プラットフォーム上でアプリケーションを作成、デプロイ、運用するための包括的なガイドです。このスキルは、エージェントが Prisma Compute の CLI コマンド、設定ファイル、認証、フレームワークの互換性を理解し、効率的なデプロイワークフローを実行できるようにします。特に、`@prisma/cli` と `create-prisma` を使用したアプリのデプロイ、`prisma.compute.ts` による型安全な設定、`0.0.0.0` へのバインドや `process.env.PORT` の使用といったランタイム要件、Next.js や Hono などの主要フレームワークの対応状況、PRISMA_SERVICE_TOKEN を使用した非インタラクティブな認証など、実践的なトピックをカバーしています。このスキルは、開発者が Prisma Compute にアプリをデプロイする際に直面する一般的な問題を解決し、CI/CD パイプラインへの統合を容易にします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/prisma/skills/tree/main/prisma-compute

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Prisma Compute

エージェントが Prisma Compute アプリの作成、デプロイ、運用、およびフレームワーク固有のデプロイ準備を行うためのガイド。

Prisma Compute CLI サーフェス

Compute アプリのワークフローには Prisma Platform CLI を使用します:

bunx @prisma/cli@latest app deploy --help
bunx @prisma/cli@latest app --help
bunx @prisma/cli@latest build logs --help
bunx create-prisma@latest --help

Compute アプリのデプロイには @prisma/cli@latest を使用します。新規プロジェクトのスキャフォールディングには create-prisma@latest を使用します。

フィードバックの送信と CLI 問題の報告

CLI にはビルトインのフィードバックチャンネルがあります。コマンドがクラッシュした場合(UNEXPECTED_ERROR)、トラブルシューティング後も失敗が続く場合、またはユーザーが Prisma チームにフィードバックを送信したい場合に使用してください:

bunx @prisma/cli@latest feedback "app deploy crashed: <first error line>"
bunx @prisma/cli@latest feedback "love the deploy flow" --email [email protected]

クラッシュ出力は、それ自体でここを指し示します。--json クラッシュエンベロープは、nextActions 内に recover エントリとして正確な事前入力済みコマンドを持ちます(そのまま実行します)。人間向けのクラッシュ出力は、Tell us what happened: というヒントで終わります。フィードバックは匿名であり、--email が渡されない限り、CLI バージョン、Node バージョン、OS プラットフォーム/アーキテクチャのみが添付されます。メッセージにシークレット、接続 URL、ユーザーデータを決して含めないでください。

信頼できる情報源の優先順位

編集または実行する内容を決定する際は、この順序で証拠を使用します:

  1. プロジェクトの生成されたスクリプトと設定、特に prisma.compute.ts、compute:deploy、フレームワーク設定、package.json。
  2. create-prisma および @prisma/cli からの CLI ヘルプ出力。
  3. ローカルにインストールされたパッケージコード、生成されたアーティファクト、型定義。
  4. 公式ドキュメント。

適用タイミング

このスキルは以下に使用します:

  • Prisma Compute にデプロイ可能な新しいアプリを作成する
  • 既存の TypeScript アプリを Prisma Compute にデプロイする
  • 型付けされた prisma.compute.ts デプロイ設定を作成または更新する
  • フレームワークが Compute 対応かどうかを判断する
  • create-prisma --deploy、compute:deploy、または app deploy をデバッグする
  • Compute アプリのログ、デプロイメント、環境変数、ドメインを管理し、プラットフォームブランチを一覧表示する(branch list; ブランチの作成/削除コマンドはありません)
  • GitHub/Console ビルドログと GitHub push-to-deploy ステータスを検査する
  • ブラウザ認証、複数の保存済みワークスペース、または Prisma サービス トークンを使用して非インタラクティブデプロイを実行する
  • @prisma/cli のローカル Prisma Platform ワークスペースを切り替え、選択、一覧表示、またはログアウトする
  • @prisma/cli feedback で解決不可能な Compute CLI の障害に関するフィードバックを送信する
  • @prisma/compute-sdk または Management API 統合によるプログラムによるデプロイ

決定木

  1. 既存プロジェクトのデプロイまたは再デプロイ: references/app-deploy-cli.md を読んでください。

  2. 型付けされた Compute 設定、モノレポ、デプロイターゲット、アプケーションルート、ビルド/環境のデフォルト: references/compute-config.md を読んでください。

  3. フレームワーク固有のビルド/ランタイム作業: references/frameworks.md を読んでください。

  4. スキャフォールドからの新規プロジェクト: references/create-prisma.md を読んでください。

  5. プログラムによるデプロイ、SDK、API、または低レベルのアプリ/デプロイメントの概念: references/sdk-api.md を読んでください。

  6. ビルド、認証、環境、デプロイ、またはランタイムの失敗: references/troubleshooting.md を読んでください。

優先順位別ルール

優先度カテゴリ影響プレフィックス
1コマンド検証CRITICALverify-
2認証とワークスペース選択CRITICALauth-
3フレームワーク対応状況CRITICALframework-
4ランタイムホストとポートバインディングCRITICALruntime-
5型付けされた Compute 設定HIGHconfig-
6ブランチ、環境、データベースの配線HIGHenv-
7デプロイ操作HIGHdeploy-
8SDK と API 自動化MEDIUMsdk-

クイックルール

1. コマンド検証

  • verify-help-first - 作業中に CLI ヘルプ出力を使用してコマンド構文を確認します。
  • verify-prisma-vs-platform-cli - prisma app deploy が ORM CLI に存在すると想定しないでください。タスクが @prisma/cli を使用すべきかどうかを確認します。
  • verify-generated-scripts - プロジェクトにすでに compute:deploy スクリプトがある場合は、それを優先します。
  • verify-public-url - 実際のデプロイ後は、ローカルまたは準備完了のみのチェックを信頼するのではなく、公開デプロイメント URL を要求します。
  • verify-config-support - prisma.compute.ts を型付けされた Compute 設定として扱います。編集またはデプロイする前に、プロジェクトの設定と生成されたスクリプトを検査します。
  • verify-auth-workspace-support - ローカルワークスペースの一覧表示/使用/ログアウトフローには @prisma/cli auth workspace コマンドを使用します。

2. 認証とワークスペース選択

  • auth-source-precedence - 空でない PRISMA_SERVICE_TOKEN はアクティブな認証ソースであり、コマンド実行時にはローカル OAuth ワークスペースは無視されます。トークンが設定されているが空の場合、CLI は保存された OAuth にフォールバックせずに失敗する必要があります。
  • auth-multi-workspace - auth login は、同じマシン上の複数のワークスペースに対して OAuth セッションを保存できます。アクティブワークスペースポインタは、通常のコマンドがどの保存された OAuth 権限を使用するかを選択します。
  • auth-list-before-switch - auth workspace list --json を使用してローカルセッションを検査します。エージェントは、名前があいまいになる可能性があるため、JSON からのワークスペース ID を優先する必要があります。
  • auth-switch-explicitly - 非インタラクティブな切り替えには auth workspace use <id-or-name> を使用します。引数なしの auth workspace use は、インタラクティブピッカーを使用するか、ローカル OAuth ワークスペースが1つだけの場合にのみ使用します。
  • auth-no-fallthrough - アクティブな OAuth ワークスペースがログアウトまたはリフレッシュに失敗した場合、CLI は他のキャッシュされたワークスペースに静かにフォールスルーしてはいけません。auth workspace use <id> を実行して次のワークスペースを選択します。
  • auth-single-workspace-logout - auth workspace logout <id-or-name> または auth logout --workspace <id-or-name> を使用して、1つのローカル OAuth ワークスペースセッションを削除します。単純な auth logout は、すべてのローカル OAuth ワークスペースセッションをクリアします。
  • auth-service-token-switching - PRISMA_SERVICE_TOKEN が設定されている間は、auth workspace use は使用できません。これはサービス トークンがアクティブな認証ソースだからです。環境変数を設定解除して、ローカル OAuth ワークスペースを切り替えます。ワークスペースのログアウトは、依然としてローカル OAuth 状態のみをクリーンアップします。
  • auth-storage-awareness - ローカル OAuth 認証情報はプラットフォーム認証ファイルに保存され、ワークスペースメタデータはサイドカーコンテキストファイルに保存されます。プロジェクトのピンは .prisma/local.json に保存され、CLI アプリ/プロジェクトの状態は、prisma.compute.ts が存在する場合はその近くの .prisma/cli/state.json に保存されます。

3. フレームワーク対応状況

  • framework-cli-first - create-prisma がスキャフォールディングできるものではなく、@prisma/cli app deploy に対してデプロイ準備態勢を評価します。
  • framework-supported-cli-deploy - Compute デプロイは、nextjs、nuxt、astro、hono、nestjs、tanstack-start、custom、bun をサポートしています。
  • framework-create-prisma-defaults-only - create-prisma は生成されたデフォルトと compute:deploy を提供できますが、既存のアプリの一般的なデプロイサーフェスではありません。
  • framework-build-output - Compute には、サーバーエントリポイントまたはフレームワークアーティファクトが必要であり、静的出力のみでは不十分です。

4. ランタイムホストとポートバインディング

  • runtime-bind-all-interfaces - デプロイされたサーバーは、すべてのインターフェース(0.0.0.0 またはフレームワークの同等のもの)にバインドする必要があり、ハードコードされた localhost や 127.0.0.1 ではいけません。
  • runtime-match-http-port - アプリはデプロイされた HTTP ポートでリッスンする必要があります。可能な場合は process.env.PORT を読み取り、一致する --http-port を渡します。
  • runtime-readiness-port-only - Compute の readiness はリッスン中のポートを監視します。ループバックのみのリスナーは準備完了のように見えるかもしれませんが、パブリックイングレスは到達できません。
  • runtime-respond-within-60s - イングレスはアプリが応答を開始するまでに 60 秒を与え、その後 504 Gateway Time-out を返してリクエストをキャンセルします。ハンドラーが最初に応答し、waitUntil またはキューを使用してより長い処理を実行するように設計し、リクエスト内で決して実行しないでください。

5. 型付けされた Compute 設定

  • config-optional-simple-app - 通常の単一アプリをデプロイするために prisma.compute.ts は必須ではありません。永続的な設定がない場合はフラグを使用します。
  • config-init-formalizer - bunx @prisma/cli@latest init で新しい設定を生成します。これはフレームワークを検出し、名前/フレームワーク/httpPort(Bun/Hono のエントリも)を固定し、プロジェクトリンクを提供します。--format json は依存関係のない prisma.compute.json を代わりに書き込みます。init は設定がすでに存在する場合は拒否し、コードをスキャフォールディングせず、デプロイもしません。
  • config-use-prisma-compute-ts - 再利用可能なデプロイデフォルトは、prisma.config.ts ではなく、defineComputeConfig を使用して prisma.compute.ts に記述します。
  • config-app-vs-apps - 単一のデプロイターゲットには app を、モノレポまたはマルチアプリリポジトリには apps を使用します。正確に1つを定義します。
  • config-monorepo-roots - モノレポの場合、prisma.compute.ts を使用してアプリターゲット、ルート、フレームワークデフォルト、エントリポイント、ポート、環境入力を宣言します。
  • config-targets - マルチアプリ設定では、@prisma/cli app deploy web は apps.web ターゲットを選択します。[app] がない場合、コマンドは現在のディレクトリからターゲットを推測できます。それ以外の場合、deploy はすべてのターゲットで実行できますが、build/run は1つを必要とします。
  • config-region-new-app-only - 設定の region は、新しく作成されたアプリのデフォルトにすぎません。既存のアプリへのデプロイは、アプリの現在のリージョンを維持します。
  • config-custom-artifact - プリビルドまたはカスタムビルドされたアーティファクトには、build.outputDirectory と build.entrypoint を指定して framework: "custom" を使用します。
  • config-no-project-branch-secrets - ワークスペース、プロジェクト、ブランチ、本番環境の意図、サービス トークン、シークレット値を prisma.compute.ts にコミットしないでください。これらはフラグ、.prisma/local.json、環境変数ストレージ、または CI シークレットに保持します。region、root、framework、entry、httpPort、および非シークレットの env ファイルパスなどのアプリレベルのデフォルトは設定に属します。
  • config-flags-win - --framework、--entry、--http-port、--region、--env などの明示的なデプロイフラグは、一致する設定値を上書きします。

6. ブランチ、環境、データベース

  • env-do-not-leak-secrets - DATABASE_URL、サービス トークン、またはシークレット値を完全な形で決して出力しないでください。
  • env-deploy-loads-dotenv - 生成されたデプロイスクリプトは、prisma.compute.ts または --env .env を介して env をロードする場合があります。再デプロイする前に実際のスクリプト/設定を検査します。
  • env-migrations-separate - 再デプロイスクリプトはマイグレーションやシードデータを実行しません。適切な Prisma データベーススクリプトを別途実行してください。
  • env-cli-token-name - @prisma/cli はサービス トークン認証に PRISMA_SERVICE_TOKEN を使用します。
  • env-branch-scope - ブランチデプロイ、ブランチ環境変数、ブランチデータベースは同じブランチ名を使用する必要があります。プレビューブランチをターゲットにする場合は、--branch <git-name> を明示的に渡します。
  • env-production-vs-preview - 本番環境には --role production、プレビューテンプレート環境には --role preview、ブランチ固有のオーバーライドには --branch <git-name> を使用します。
  • env-db-explicit - データベースと環境の配線は、データベースおよびプロジェクト環境コマンドを介して明示的に保ちます。デプロイの例にはデータベースセットアップを含めず、デプロイはマイグレーション、シードデータ、またはアプリごとに1つのデータベースを自動的に作成しません。

7. デプロイ操作

  • deploy-prod-intent - --prod --yes は、ユーザーが本番デプロイを意図している場合にのみ使用します。アプリの最初の本番デプロイは --prod なしで自動プロモートされます。このフラグは、後続のプロダクションブランチデプロイをゲートします。
  • deploy-no-promote - app deploy --no-promote をビルドしてから検証するために使用します。これにより、候補が独自の URL で到達可能になり、ライブデプロイメントには影響を与えず、後で app promote <deployment-id> でプロモートされます。
  • deploy-github-default-branch - Compute アプリが GitHub の push-to-deploy に接続されている場合、デフォルトブランチへのマージが本番デプロイパスになります。ユーザーにマージされた PR ブランチを再デプロイしたり、デフォルトブランチのプレビューデプロイを実行したりするように指示する代わりに、デプロイメントレコードまたは GitHub チェックの実行状況を確認します。
  • deploy-build-logs - GitHub/Console のビルド出力には @prisma/cli build logs <build-id> を使用します。ランタイムデプロイメントログには app logs を使用します。2つの ID は異なります。
  • deploy-noninteractive-auth - 非インタラクティブデプロイには、正しいアクティブな保存済み OAuth ワークスペース、またはサポートされているサービス トークン環境変数のいずれかが必要です。トークンを決して出力しないでください。
  • deploy-json-for-agents - スクリプトおよびエージェントが読み取り可能な出力には --json --no-interactive を使用します。
  • deploy-create-project - --create-project <name> は、ユーザーがデプロイで新しいプロジェクトを作成してリンクしたい場合にのみ使用します。--project および PRISMA_PROJECT_ID と競合します。
  • deploy-ops-targets - アプリの表示/開く/ログ/デプロイ一覧/プロモート/ロールバック/削除およびドメインコマンドも、prisma.compute.ts からの [app] ターゲットを受け入れることができます。
  • deploy-report-cli-bugs - UNEXPECTED_ERROR または解決不可能な障害が発生した場合は、フィードバックコマンドで報告します。上記の「フィードバックの送信と CLI 問題の報告」を参照してください。

8. SDK と API

  • sdk-use-cli-first - アプリワークフローには @prisma/cli app deploy を優先します。ユーザーがより低レベルの自動化を構築している場合を除き、create-prisma は新しいアプリをスキャフォールディングするためにのみ使用します。
  • sdk-result-handling - @prisma/compute-sdk は Result 値を返します。例外に依存する代わりに、isOk()/isErr() をチェックします。
  • sdk-snapshot-detection - ディスクにチェックアウトされていないリポジトリスナップショットには detectComputeApp を使用します。ワークスペースを自分で列挙し、候補となるアプケーションルートごとに1回呼び出します。

推奨ワークフロー

  1. プロジェクトを検査します: パッケージマネージャー、テンプレート/フレームワーク、package.json のスクリプト、Prisma バージョン、Prisma Client の場所、prisma.compute.ts、既存の compute:deploy。
  2. 実際に使用されているパッケージの CLI ヘルプ出力を確認します。
  3. プロジェクト/アプリの変更の前に認証コンテキストを確認します: auth whoami --json、および複数のローカルセッションが存在する可能性がある場合は auth workspace list --json。
  4. パスを選択します:
    • 既存のアプリデプロイ: config バックアップのターゲット(存在する場合)、生成された compute:deploy、または @prisma/cli app build/run/deploy フラグ
    • 新規アプリスキャフォールド: create-prisma、次に生成された compute:deploy または @prisma/cli app deploy
    • 低レベル...

Individual skills in this repo

This repo contains 8 individual skills — each has its own dedicated page.

prisma/prisma-cli

Prisma ORM CLI commands reference covering init, generate, migrate, db, dev, studio, validate, format, debug, and mcp. Use for ORM/database CLI workflows, not Prisma Compute app deployment. For Prisma Compute, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, apps, deployments, logs, or domains, use the `prisma-compute` skill instead. Triggers on "prisma init", "prisma generate", "prisma migrate", "prisma db", "prisma studio", "prisma mcp".

prisma/prisma-client-api

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

prisma/prisma-database-setup

Guides for configuring Prisma with different database providers (PostgreSQL, MySQL, SQLite, MongoDB, etc.). Use when setting up a new project, changing databases, or troubleshooting connection issues. Triggers on "configure postgres", "connect to mysql", "setup mongodb", "sqlite setup".

prisma/prisma-driver-adapter-implementation

Required reference for Prisma v7 driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter/Transaction interfaces. Contains critical contract details not inferable from code examples — including the transaction lifecycle protocol, error mapping requirements, and verification checklist. Existing implementations do not replace this skill.

prisma/prisma-mongodb-upgrade

Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7. Use when a MongoDB project asks about upgrading Prisma, when "upgrade to prisma 7" comes up in a project with provider = "mongodb", or when evaluating a move to Prisma Next. Triggers on "upgrade prisma mongodb", "prisma 7 mongodb", "mongodb prisma migration", "prisma next mongodb".

prisma/prisma-postgres

Prisma Postgres setup and operations guidance across Console, create-db CLI, Management API, and Management API SDK. Use when creating Prisma Postgres databases, working in Prisma Console, provisioning with create-db/create-pg/create-postgres, or integrating programmatic provisioning with service tokens or OAuth.

prisma/prisma-postgres-setup

Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to "set up a database", "create a Prisma Postgres project", "get a connection string", "connect my app to Prisma Postgres", or "provision a database".

prisma/prisma-upgrade-v7

Complete migration guide from Prisma ORM v6 to v7 covering all breaking changes. Use when upgrading Prisma versions, encountering v7 errors, or migrating existing projects. Triggers on "upgrade to prisma 7", "prisma 7 migration", "prisma-client generator", "driver adapter required".

関連スキル