主要コンテンツへスキップ

Prisma Config リファレンス

概要

警告

この機能は現在早期アクセス段階であり、今後変更される可能性があります。

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
  • 必須: はい (早期アクセス期間中)
  • デフォルト: なし

設定ファイルが有効かどうかを制御します。早期アクセス期間中は 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 スキーマを複数のファイルに分割したい場合は、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.prismadatasource を定義している場合、マイグレーションフォルダーを配置する方法は次のとおりです。

# `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
© . All rights reserved.