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

システム要件

このページでは、Prisma ORMのシステム要件の概要について説明します。

システム要件

このセクションでは、Prisma ORMに必要なソフトウェアと、サポートされているオペレーティングシステム、および特定のオペレーティングシステムのランタイム依存関係の要件を示します。

ソフトウェア要件

Prisma ORMの最新バージョンには、次のソフトウェアが必要です。

ツール最小必須バージョン
Node.js18.8 / 20.9 / 22.11
TypeScript(オプション)5.1.X
Yarn(オプション)1.19.2
  • Prisma ORMは、すべてのActive LTSおよびMaintenance LTS Node.jsリリースをサポートおよびテストしています。Currentなどのこれらの状態にないリリースや、奇数バージョンも動作する可能性がありますが、本番環境での使用は推奨されません。
  • TypeScriptは、TypeScriptユーザーのみに必要です。
  • Yarn 1を使用する場合、1.19.2はPrisma Clientと互換性のある最小バージョンです。

参照: サポートされているデータベースバージョン

以前のバージョンを展開

Prisma ORM v5

Prisma ORM v5には、次のソフトウェアが必要です。

最小必須バージョン
Node.js16.13 / 18.X / 20.X
TypeScript(オプション)4.7.X
Yarn(オプション)1.19.2

オペレーティングシステム

Prisma ORMは、macOS、Windows、およびほとんどのLinuxディストリビューションでサポートされています。

Linuxランタイム依存関係

Prisma ORMが動作するには、次のシステムライブラリをインストールする必要があります。

  • OpenSSL 1.0.x、1.1.x、または3.x
  • zlib (libz.so.1)
  • libgcc (libgcc_s.so.1)
  • C標準ライブラリ(ほとんどのLinuxディストリビューションではglibc、Alpine Linuxではmusl libc)

次の2つの表は、各CPUアーキテクチャでサポートされているLinuxディストリビューションファミリ、OpenSSLバージョン、およびC標準ライブラリを示しています。

AMD64 (x86_64) アーキテクチャの場合

ディストリビューションファミリOpenSSLバージョンlibcバージョン
Alpine1.1.x, 3.xmusl 1.2.x
RHEL1.0.x, 1.1.x, 3.xglibc 2.17+
Debianまたはその他1.0.xglibc 2.19+
Debianまたはその他1.1.x, 3.xglibc 2.24+

ARM64 (aarch64) アーキテクチャの場合

ディストリビューションファミリOpenSSLバージョンlibcバージョン
Alpine1.1.x, 3.xmusl 1.2.x
RHEL1.0.x, 1.1.x, 3.xglibc 2.24+
Debianまたはその他1.0.x, 1.1.x, 3.xglibc 2.24+

Prisma ORMがシステム上のOpenSSLバージョンを解決できない場合(インストールされていないなど)、OpenSSL 1.1.xにデフォルト設定されます。

サポートされているNode.jsバージョンを実行できるシステムには、zlibとlibgccが利用可能である可能性が高いです。注目すべき例外の1つは、GoogleのDistrolessイメージであり、libz.so.1を互換性のあるDebianシステムからコピーする必要があります。

Windowsランタイム依存関係

Windowsでは、Microsoft Visual C++ Redistributable 2015以降がインストールされている必要があります(これは、ほとんどの最新のインストールでデフォルトでそうなっています)。

macOSランタイム依存関係

Prisma ORMはmacOS 10.15以降をサポートしています。macOSには、すべてのプラットフォームでソフトウェア要件セクションにリストされているもの以外の追加のプラットフォーム固有の要件はありません。

トラブルシューティング

システム要件の古いバージョンを使用することによって引き起こされる一般的な問題がいくつかあります。

@prisma/clientでTypeScriptプロジェクトをビルドできない

問題

prisma generateを実行した後、プロジェクトの型チェックを試みると、次のエラーが表示されます。

./node_modules/.prisma/client/index.d.ts:10:33
Type error: Type expected.
8 | export type PrismaPromise<A> = Promise<A> & {[prisma]: true}
9 | type UnwrapTuple<Tuple extends readonly unknown[]> = {
> 10 | [K in keyof Tuple]: K extends `${number}` ? Tuple[K] extends PrismaPromise<infer X> ? X : never : never
| ^
11 | };
12 |
13 |

解決策

プロジェクトのTypeScript依存関係をPrisma ORMでサポートされているバージョンにアップグレードします。npm install -D typescript

groupByプレビュー機能を使用できない

問題

groupByプレビュー機能を使用するアプリを実行しようとすると、次のコンソールエラーが表示されます。

server.ts:6:25 - error TS2615: Type of property 'OR' circularly references itself in mapped type '{ [K in keyof { AND?: Enumerable<ProductScalarWhereWithAggregatesInput>; OR?: Enumerable<ProductScalarWhereWithAggregatesInput>; ... 4 more ...; category?: string | StringWithAggregatesFilter; }]: Or<...> extends 1 ? { ...; }[K] extends infer TK ? GetHavingFields<...> : never : {} extends FieldPaths<...> ? never : K...'.
6 const grouped = await prisma.product.groupBy({
~~~~~~~~~~~~~~~~~~~~~~~~
7 by: ['category']
~~~~~~~~~~~~~~~~~~~~
8 });
~~~~
server.ts:6:48 - error TS2554: Expected 0 arguments, but got 1.
6 const grouped = await prisma.product.groupBy({
~
7 by: ['category']
~~~~~~~~~~~~~~~~~~~~
8 });
~~~

解決策

プロジェクトのTypeScript依存関係をPrisma ORMでサポートされているバージョンにアップグレードします。npm install -D typescript