Prisma Config リファレンス
概要
この機能は現在早期アクセス段階であり、今後変更される可能性があります。
prisma.config.ts
ファイルは、TypeScript を使用して、migrate
や studio
などのサブコマンドを含む 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
ファイルの環境変数は自動的にロードされません。次の操作を行う必要があります。
dotenv
パッケージをインストールする
npm install dotenv
- 設定ファイルで
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.prisma
が datasource
を定義している場合、マイグレーションフォルダーを配置する方法は次のとおりです。
# `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