Prisma Config リファレンス
概要
この機能は現在Early Accessであり、変更される可能性があります。
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
- 必須: はい (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` ファイルの環境変数は自動的にロードされません。次の手順が必要です。
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スキーマを複数のファイルに分割したい場合は、`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