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

Prisma Config リファレンス

概要

警告

この機能は現在Early Accessであり、変更される可能性があります。

prisma.config.ts ファイルは、TypeScriptを使用して migratestudio などのサブコマンドを含む Prisma CLI を設定します。設定は2つの方法で定義できます。

defineConfig ヘルパーを使用する

import path from 'node:path';
import { defineConfig } from 'prisma/config';

export default defineConfig({
earlyAccess: true,
schema: path.join('prisma', 'schema.prisma'),
});

または、TypeScriptの satisfies 演算子を PrismaConfig 型とともに使用する

import path from 'node:path';
import type { PrismaConfig } from 'prisma'

export default {
earlyAccess: true,
schema: path.join('prisma', 'schema.prisma'),
} satisfies PrismaConfig

設定インターフェース

export declare type PrismaConfig<Env extends EnvVars = never> = {
/**
* Whether features with an unstable API are enabled.
*/
earlyAccess: true;
/**
* The path to the schema file or path to a folder that shall be recursively searched for .prisma files.
*/
schema?: string;
/**
* The configuration for Prisma Studio.
*/
studio?: PrismaStudioConfigShape<Env>;
/**
* The configuration for Prisma Migrate + Introspect
*/
migrate?: PrismaMigrateConfigShape<Env>;
};

オプションリファレンス

earlyAccess

  • 型: boolean
  • 必須: はい (Early Access期間中)
  • デフォルト: なし

コンフィグファイルが有効かどうかを制御します。Early Access期間中は `true` に設定する必要があります。

migrate

  • 型: object
  • 必須: いいえ
  • デフォルト: {}

Prisma Migrateが基盤となるデータベースとどのように通信するかを設定します。詳細については、以下のサブオプションを参照してください。

migrate.adapter

  • 型: (env: Env) => Promise<SqlMigrationAwareDriverAdapterFactory>
  • 必須: いいえ
  • デフォルト: なし

Prisma CLIがマイグレーションを実行するために使用するPrismaドライバアダプターインスタンスを返す関数。この関数は環境変数を含む `env` パラメーターを受け取り、有効なPrismaドライバアダプターに解決される `Promise` を返す必要があります。

Prisma ORM D1ドライバアダプターを使用した例

import path from 'node:path'
import type { PrismaConfig } from 'prisma'
import { PrismaD1HTTP } from '@prisma/adapter-d1'

// import your .env file
import 'dotenv/config'

type Env = {
CLOUDFLARE_D1_TOKEN: string
CLOUDFLARE_ACCOUNT_ID: string
CLOUDFLARE_DATABASE_ID: string
}

export default {
earlyAccess: true,
schema: path.join('prisma', 'schema.prisma'),

migrate: {
async adapter(env) {
return new PrismaD1HTTP({
CLOUDFLARE_D1_TOKEN: env.CLOUDFLARE_D1_TOKEN,
CLOUDFLARE_ACCOUNT_ID: env.CLOUDFLARE_ACCOUNT_ID,
CLOUDFLARE_DATABASE_ID: env.CLOUDFLARE_DATABASE_ID,
})
},
},
} satisfies PrismaConfig<Env>

schema

  • 型: string
  • 必須: いいえ
  • デフォルト: `./prisma/schema.prisma` および `./schema.prisma`

Prisma ORMがスキーマファイルをどのように検索してロードするかを設定します。ファイルまたはフォルダーパスを指定できます。相対パスは `prisma.config.ts` ファイルの場所を基準に解決されます。スキーマファイルの場所オプションの詳細については、こちら を参照してください。

studio

  • 型: object
  • 必須: いいえ
  • デフォルト: なし

Prisma Studioがデータベースにどのように接続するかを設定します。

studio.adapter

  • 型: (env: Env) => Promise<SqlMigrationAwareDriverAdapterFactory>
  • 必須: いいえ
  • デフォルト: なし

Prismaドライバアダプターインスタンスを返す関数。この関数は環境変数を含む `env` パラメーターを受け取り、有効なPrismaドライバアダプターに解決される `Promise` を返す必要があります。

Prisma ORM LibSQLドライバアダプターを使用した例

import type { PrismaConfig } from 'prisma'

export default {
earlyAccess: true,
studio: {
adapter: async (env: Env) => {
const { PrismaLibSQL } = await import('@prisma/adapter-libsql')
const { createClient } = await import('@libsql/client')

const libsql = createClient({
url: env.DOTENV_PRISMA_STUDIO_LIBSQL_DATABASE_URL,
})
return new PrismaLibSQL(libsql)
},
},
} satisfies PrismaConfig

一般的なパターン

プロジェクトのセットアップ

Prisma Config を使い始めるには、プロジェクトルートに `prisma.config.ts` ファイルを作成します。次のいずれかの方法を使用できます。

defineConfig を使用する

import { defineConfig } from 'prisma/config'

export default defineConfig({
earlyAccess: true
})

TypeScript 型を使用する

import type { PrismaConfig } from 'prisma'

export default {
earlyAccess: true
} satisfies PrismaConfig

環境変数を使用する

prisma.config.ts を使用する場合、`.env` ファイルの環境変数は自動的にロードされません。次の手順が必要です。

  1. dotenv パッケージをインストールする
npm install dotenv
  1. コンフィグファイルに `dotenv/config` をインポートする
import 'dotenv/config'
import type { PrismaConfig } from 'prisma'

export default {
earlyAccess: true,
// now you can use process.env variables
} satisfies PrismaConfig

マルチファイルスキーマを使用する

Prismaスキーマを複数のファイルに分割したい場合は、`prismaSchemaFolder` プレビュー機能を使用し、`schema` プロパティを介してPrismaスキーマフォルダーへのパスを指定する必要があります。

import path from 'node:path';
import type { PrismaConfig } from 'prisma'

export default {
earlyAccess: true,
schema: path.join('prisma', 'schema'),
} satisfies PrismaConfig

その場合、`migrations` ディレクトリは `datasource` ブロックを定義する `.prisma` ファイルの隣に配置する必要があります。

たとえば、`schema.prisma` が `datasource` を定義していると仮定すると、migrations フォルダーを配置する方法は次のとおりです。

# `migrations` and `schema.prisma` are on the same level
.
├── migrations
├── models
│ ├── posts.prisma
│ └── users.prisma
└── schema.prisma

カスタムコンフィグファイルの場所

Prisma CLIコマンドを実行するときに、コンフィグファイルのカスタムの場所を指定できます。

prisma validate --config ./path/to/myconfig.ts