Prismaの安定版の最新は7.10.1(npm公開 2026年10月15日)です。一方で、npmのprismaパッケージのlatestタグはPrisma 8のリリース候補(8.0.0-rc.23)を指しています。そのため、バージョンを指定せずにnpm install prismaを実行すると、Prisma 7のプロジェクトでも8のCLIが入ります。8のCLIではprisma -vもprisma generateも動きません。この記事では、2026年10月16日時点のnpmの状態と実際の挙動を確認したうえで、いま入れるべきバージョン、確認方法、Prisma 7への固定、v6からv7への移行手順をまとめます。
まとめ:Prismaバージョンの要点(2026年10月時点)
- 本番で使う安定版はPrisma ORM 7系(最新7.10.1)。Prisma 8は開発中の名称「Prisma Next」から改称された作り直し版で、現在はRC(リリース候補)。公式のリリース状況ページは正式版を2026年10月の見込みとしている。
npm install prismaは8.0.0-rc系を入れる一方、@prisma/clientのlatestは7.10.1のまま。両方を版指定なしで入れると8のCLIと7のクライアントが混在し、警告は出ない。- Prisma 7のプロジェクトは
"prisma": "^7"と"@prisma/client": "^7"で固定し、CIなどではnpx prisma@7と書く。 - バージョン確認は、Prisma 7なら
npx prisma -v、Prisma 8ならnpx prisma --version。8では-vが--verboseの意味に変わった。 - 保守期限:Prisma 6のセキュリティパッチは2026年11月19日まで。Prisma 7は8の正式版リリースから18か月間、バグ修正とセキュリティ更新が続く。
Prismaの最新バージョン:安定版7.10.1とPrisma 8 RC
いまのPrismaには「安定版の7系」と「RCの8系」が並んでいて、npmのタグもパッケージごとに指す先が違います。2026年10月16日にnpm view <パッケージ名> dist-tagsで確認した値は次のとおりです。
| パッケージ | latest | prevタグ | 属する版 |
|---|---|---|---|
prisma(CLI) |
8.0.0-rc.23 | prev: 7.10.1 | Prisma 8 |
@prisma/client |
7.10.1 | prev: 6.19.3 | Prisma 7 |
@prisma/orm-postgres |
8.0.0-rc.18 | なし | Prisma 8 |
@prisma/adapter-pg |
7.10.1 | prev: 6.19.3 | Prisma 7 |
@prisma/prisma7 |
7.10.1 | なし | Prisma 7 |
Prisma 8のRCはほぼ毎週更新されていて、番号はすぐに古くなります。記事の数字ではなく、手元でnpm view prisma dist-tagsを実行してlatestとprevを見てください。
Prisma 8(旧称Prisma Next)の位置づけと正式版の時期
Prisma 8は、2026年3月4日に「The Next Evolution of Prisma ORM」として発表された次世代版です。この記事には「Prisma 8 was developed under the working name Prisma Next」という編集注が付いていて、Prisma NextとPrisma 8は同じものを指します。Prisma 7のクライアント(PrismaClient)の延長ではなく、TypeScriptで作り直されています。スキーマはcontract.prisma(コントラクト)になり、クライアントはデータベースごとのライブラリ(PostgreSQLなら@prisma/orm-postgres)から作ります。
正式版の時期は、公式ドキュメントが「General availability is expected in October 2026.」、GitHubのREADMEが「8.0.0 final is expected in the next four to eight weeks」と書いていて、両者で幅があります。RCの間はリリースのたびに破壊的変更が入ることがあり、8.0.0-rc.18でもスキーマ内の生SQLの書き方と、ミドルウェアのフック名が変わりました。
npm install prismaでPrisma 8 RCが入る問題と7への固定
8.0.0-rcのnpm公開は2026年8月17日に始まり、遅くとも9月16日にはprismaのlatestタグが8のRCを指していました(10月16日時点でも同じ)。GitHubのissue #30322(2026年9月16日起票・10月16日時点でopen)は、「通常は安定版に使うlatestタグにRCが載っている」と指摘しています。Prisma 7のプロジェクトで何が起きるかを、空のプロジェクトで実際に確かめました(Node.js v26.5.0/npm 11.17.0)。
版指定なしで入れたときの組み合わせ(実測)
npm i -D prismaのあとにnpm i @prisma/clientを実行すると、package.jsonには次のように記録されました。
"devDependencies": { "prisma": "^8.0.0-rc.23" },
"dependencies": { "@prisma/client": "^7.10.1" }
@prisma/client 7.10.1はpeerDependenciesでprismaを"*"(どの版でも可)としているため、npmは版の食い違いを警告しません。npm ls prisma @prisma/clientでも[email protected] dedupedと表示されるだけです。この状態でPrisma 7の手順どおりにコマンドを打つと、すべて終了コード2で止まりました。
$ npx prisma -v
No command registered for `-v`, did you mean `dev`?
$ npx prisma generate
No command registered for `generate`
$ npx prisma migrate dev
No command registered for `migrate`, did you mean `migration`?
$ npx prisma db push
No command registered for `push`, did you mean `update`?
実際の出力は"code":"CLI.UNKNOWN_COMMAND"を含むJSONで、上はその中のsummaryだけを抜き出したものです。今回はAIエージェント上の非対話シェルで実行したためJSONになり、--format humanを付けると通常の文字列で出ます。node_modulesの大きさも、8のCLIを含む構成は1.6GB、Prisma 7だけの構成は330MBでした。8のCLIには、Prisma Compute(Prismaのアプリ実行基盤)へのデプロイなどプラットフォーム機能の依存も入っているためです。
CIでキャッシュを使わずにnpm install prismaしているパイプラインや、Prisma 7をローカルにインストールせずにnpx prisma generateを実行するDockerfileは、8のCLIを取得してこのエラーになる可能性があります。package-lock.jsonをコミットしてnpm ciで入れている場合は、lockに書かれた版が入るので影響を受けません。
Prisma 7に留めるpackage.jsonとCIの書き方
公式の推奨は、2つのパッケージをメジャー7に固定することです。
{
"devDependencies": { "prisma": "^7" },
"dependencies": { "@prisma/client": "^7" }
}
すでに8が入ってしまった場合も、npm install --save-dev prisma@7で戻せます。実測ではpackage.jsonが"prisma": "^7.10.1"に書き換わり、npx prisma -vが7.10.1を表示し、node_modulesは330MBに戻りました。package.jsonを通さずに一時的に実行する場合は、npx prisma@7 generateのように版を付けます。npx prisma@prevでも7.10.1が動きますが、prevタグは8の正式版が出たあとに指す先が変わる可能性があるため、@7のほうが確実です。
7と8を同じプロジェクトで並べる@prisma/prisma7
8へ少しずつ移る場合は、7.10.0で追加された互換パッケージ@prisma/prisma7を使います。7のCLIがprisma7という名前で入り、prismaは8のCLIになります。設定ファイルもprisma7.config.tsに分けます。7.10.0のリリースノートはprisma@8と書いていますが、正式版が出るまでは@8の範囲にRCが含まれず、2026年10月16日時点のnpm view prisma@8は404になりました。正式版までは公式の移行ガイドと同じprisma@latestで入れます。
npm install --save-dev prisma@latest @prisma/[email protected]
npm install @prisma/[email protected]
npx prisma7 generate # Prisma 7のクライアント生成
npx prisma7 migrate dev # Prisma 7のマイグレーション
npx prisma --version # Prisma 8のCLI
公式の7→8移行ガイドは、この並行運用を前提に、既存のPostgreSQLのデータを変えずに8へ移す手順を説明しています。ただし対象はPostgreSQLだけです。
インストール済みPrismaのバージョンを確認する方法
確認方法は、Prisma 7と8で違います。7のCLIはprisma -v(prisma versionの短縮形)で、CLI・クライアント・エンジンの版をまとめて表示します。公式のコマンドリファレンスの出力例は2.21.0-dev.4のままなので、7.10.1で実行した出力を載せます。
$ npx prisma -v
prisma : 7.10.1
@prisma/client : 7.10.1
Operating System : darwin
Architecture : x64
Node.js : v26.5.0
TypeScript : unknown
Query Compiler : enabled
PSL : @prisma/prisma-schema-wasm 8.1.0-1.d1b3f377ca835d73fd50954a5e22128b9ebdd6b8
Schema Engine : schema-engine-cli d1b3f377ca835d73fd50954a5e22128b9ebdd6b8 (at node_modules/@prisma/engines/schema-engine-darwin)
Default Engines Hash : d1b3f377ca835d73fd50954a5e22128b9ebdd6b8
Studio : 0.33.0
6系までの出力にあったQuery Engine(Rust製のクエリエンジン)の行が無く、代わりにQuery Compiler : enabledが出ます。v7でクライアントからRustのエンジンが外れたことは、この行で確かめられます。8のCLIはprisma --versionで番号だけを返し(実測では8.0.0-rc.23)、prisma versionというサブコマンドはありません。
CLIの版とは別に、実際に解決されたパッケージを見るにはnpm lsを使います。prismaと@prisma/clientのメジャー番号が違っていたら、上の混在状態です。
npm ls prisma @prisma/client # 解決済みの版
npm view prisma dist-tags # npm上の latest / prev
npm view @prisma/client dist-tags
Prismaのバージョン履歴とサポート期限
メジャーバージョンの公開日とサポート期限
メジャー版は1年に1回前後のペースで上がってきました。公開日はnpmの公開記録(UTC)です。
| 版 | 公開日 | 保守の状況(2026年10月時点) |
|---|---|---|
| Prisma 4 | 2022-06-28 | 保守対象外 |
| Prisma 5 | 2023-07-11 | 保守対象外 |
| Prisma 6(2026年10月16日時点で6.19.3) | 2024-11-28 | 2026-11-19までセキュリティパッチのみ |
| Prisma 7(最新7.10.1) | 2025-11-19 | 8の正式版から18か月、バグ修正とセキュリティ更新 |
| Prisma 8(RC) | 2026-08-17(RCの初回公開) | 正式版は2026年10月見込み |
Prisma 6の期限は「7のリリースから12か月」で、2026年11月19日に終わります。公式のリリース方針にLTS(長期サポート版)という区分は書かれておらず、旧版の保守期間は新しいメジャー版の公開日(8は正式版の日)から数えます。リリース方針のページによると、通常のリリースは原則2週間おきで、Prisma 3以降はSemVerに従います。正式提供済み機能の破壊的変更はメジャー版で行われますが、オプトインのPreview・Early Access機能ではマイナー版でも破壊的変更が入ることがあります。
Prisma 7系の主要リリース(7.0〜7.10.1)
| 版 | 公開日 | 主な内容 |
|---|---|---|
| 7.0.0 | 2025-11-19 | Rust不要のクライアントが既定に(正式版) |
| 7.4.0 | 2026-02-11 | クライアントのキャッシュ、部分インデックス対応 |
| 7.5.0 | 2026-03-11 | Studioで生SQL実行・全文検索 |
| 7.7.0 | 2026-04-07 | prisma bootstrapコマンド追加 |
| 7.8.0 | 2026-04-22 | queryPlanCacheMaxSizeオプション追加 |
| 7.9.0 | 2026-07-20 | CLIのタブ補完(bash・zsh・fish・PowerShell) |
| 7.10.0 | 2026-08-25 | @prisma/prisma7追加、Studioのローカルサーバー保護 |
| 7.10.1 | 2026-10-15 | パッチ(npmのみ公開・GitHubのリリースノートは未掲載) |
各版の詳細はGitHubのリリース一覧で見られます。リポジトリはprisma/prismaからprisma/ormに改名されていて、旧URLは転送されます。
Prisma 6・7・8の違い
6から7はクライアントの基盤の入れ替え、7から8はAPIとコマンドの作り直しです。8への移行は7への移行より重く、コードの書き換えが前提になります。
| 観点 | Prisma 6 | Prisma 7 | Prisma 8(RC) |
|---|---|---|---|
| Node.js | 18.18以上 | 20.19以上の20系/22.12以上の22系/24以上 | 22.18以上・24.11以上・26以上 |
| TypeScript | 5.1以上 | 5.4.0以上 | 5.9以上 |
| スキーマ | schema.prisma | schema.prisma | contract.prisma(7のschemaも読める) |
| クライアント | @prisma/client(Rustエンジン) | 生成したPrismaClient+ドライバアダプタ | @prisma/orm-postgres等から作るdb |
| 生成コマンド | prisma generate | prisma generate | prisma contract emit |
| モジュール形式 | CommonJS中心 | ESM | ESM |
| MongoDB | 対応 | 非対応(6.19を使う) | 早期アクセス |
Prisma 6の要件はnpmに登録されたenginesとpeerDependencies(6.19.3)、7は7への移行ガイド、8はリリース状況ページの記載です。
Prisma 6から7へアップグレードする手順
Prisma 6から7への移行に伴う破壊的変更
- generatorの変更:
providerをprisma-client-jsからprisma-clientにし、outputを必ず書く。新しいprisma-clientでは生成先をoutputで指定し、従来のようにnode_modulesへ自動生成する構成から変更する。 - 直接接続にはドライバアダプタが必須:DBへ直接接続する場合は、アダプタを
PrismaClientに渡す。Accelerateを使っている場合は、アダプタではなくaccelerateUrlとAccelerate拡張を使う。ただしスタンドアロンのAccelerateは2026年12月1日に終了するため、この構成は一時しのぎになる。接続プールの既定値は下のドライバに従い、pgは接続タイムアウトが0(無制限)で、v6の5秒とは違う。 - 設定は
prisma.config.tsへ:接続URL・スキーマの場所・マイグレーションとシードの設定を移す。.envは自動で読まれないのでdotenvで読み込む。 - ESM化:
package.jsonに"type": "module"を書き、tsconfigを"module": "ESNext"にする。 - CLIの挙動:
migrate devとdb pushはgenerateを自動実行せず、migrate dev後の自動シードも無くなった。--skip-generateと--skip-seedは削除された。 - 削除されたAPI:
prisma.$use()のミドルウェアはClient Extensionsへ置き換える。Metricsのプレビュー機能も削除された。 - MongoDBは移行不可:7はMongoDBに対応していない。公式は6.19を使い続けるよう案内している。
SQLiteで確認したPrisma 7への移行手順(抜粋)
既存のSQLiteプロジェクトで変える箇所だけを抜き出しています。Prisma 7.10.1とSQLiteで、Userモデル1つと.envのDATABASE_URL="file:./dev.db"を用意し、db push→generate→upsertまで実行して確かめました。既存のmodel定義はそのまま残します。まずパッケージを上げ、generatorを書き換えます。
npm install --save-dev prisma@7
npm install @prisma/client@7 @prisma/adapter-better-sqlite3@7 dotenv
npm install --save-dev tsx
generator client {
provider = "prisma-client"
output = "../generated/prisma"
}
datasource db {
provider = "sqlite"
}
次に、プロジェクト直下(package.jsonと同じ場所)にprisma.config.tsを置きます。datasourceのurlはスキーマではなくここに書きます。
import "dotenv/config";
import { defineConfig, env } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
migrations: { path: "prisma/migrations" },
datasource: { url: env("DATABASE_URL") },
});
最後に、クライアントの読み込み元を生成先に変え、アダプタを渡します。DBへの反映のあとはnpx prisma generateを自分で実行します。
import "dotenv/config";
import { PrismaClient } from "./generated/prisma/client";
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! });
const prisma = new PrismaClient({ adapter });
この構成でnpx prisma db push、npx prisma generate(「Generated Prisma Client (7.10.1)」と表示)、tsxでの実行の順に進め、upsertしたレコードが返ることを確認しました。手順の全体は公式の7への移行ガイドにあります。
データベース別のドライバアダプタ(Prisma 7)
Prisma 7では、DBごとにアダプタのパッケージを入れ、そのクラスをPrismaClientに渡します。アダプタの版はPrisma本体と揃えます(いずれもlatestは7.10.1)。
| データベース | アダプタのパッケージ | クラス |
|---|---|---|
| PostgreSQL | @prisma/adapter-pg | PrismaPg |
| MySQL・MariaDB | @prisma/adapter-mariadb | PrismaMariaDb |
| SQLite | @prisma/adapter-better-sqlite3 | PrismaBetterSqlite3 |
PostgreSQLではconnectionStringを渡します。通常のMySQL接続にも@prisma/adapter-mariadbを使います。PlanetScaleのHTTP接続には、別途@prisma/adapter-planetscaleがあります。
import { PrismaClient } from "./generated/prisma/client";
import { PrismaPg } from "@prisma/adapter-pg";
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
const prisma = new PrismaClient({ adapter });
Supabaseのように接続文字列が2本ある環境では、どちらをprisma.config.tsに書くかで迷います。SupabaseにPrismaとDrizzleをつなぐ:接続文字列とマイグレーション二重管理の設計で整理しています。
Prisma 7から8への移行条件と未対応機能
Prisma 7・8のCLIコマンド対応表
8のCLIは、コントラクト(contract)・接続先DB(db)・マイグレーションファイル(migration)の3つでコマンドを分けています。公式の対応表から、よく使うものを抜き出しました。
| Prisma 7 | Prisma 8 |
|---|---|
| prisma generate | prisma contract emit |
| prisma migrate dev | prisma db update、またはmigration plan→db migrate |
| prisma migrate deploy | prisma db migrate |
| prisma db push | 空DBはprisma db init、以降はdb update。既存7のDBは移行ガイドに従う |
| prisma db pull | prisma contract infer |
| prisma format | prisma contract format |
| prisma db seed | なし(tsx等でスクリプトを直接実行) |
| prisma studio | プロジェクト外でnpx prisma@7 studio --url 接続URL |
prisma -v |
prisma --version |
8にまだ無い機能と対応DB
RCの時点で、8には次の機能がありません。7のコードでこれらを使っていれば、8では書き換えが要ります。
$extends(ミドルウェアで置き換え)、JSON列の中身での絞り込み、increment/decrement、ほとんどのネストした書き込み、トランザクション分離レベルの指定、P2002形式のエラーコードfindUniqueOrThrow/findFirstOrThrow(.first()とnull判定で代用)
対応DBは、PostgreSQLがRC、MongoDBが早期アクセス、SQLiteが実験的という段階です。MySQLは「次に予定」、MariaDB・SQL Server・CockroachDBは8用のライブラリがまだありません。
どのバージョンを選ぶか:データベース別の判断
番号の新しさではなく、使っているDBと、8の正式版が出たかどうかで決めます。2026年10月時点の判断は次のとおりです。
- MySQL・MariaDB・SQL Server・CockroachDB:Prisma 7一択。8にライブラリが無く、7は8の正式版から18か月保守される。
^7で固定して待つ。 - PostgreSQL(既存アプリ):7のまま運用し、8の正式版が出てから
@prisma/prisma7で並行させて移る。$extendsやJSONフィルタを多用しているなら、8で代わりの手段が揃うまで動かない。 - PostgreSQL(新規):公式READMEは「New projects should start here」と8を勧めている。ただしRCの間は版を上げるたびに破壊的変更があり得るので、本番の期日がある案件なら7で始めるほうが安全。
- MongoDB:最も判断が難しい。7は非対応で、6.19のセキュリティパッチは2026年11月19日に終わり、8は早期アクセスでトランザクションがまだ無い。期限後も6.19に留まるなら、パッチが出ない前提で依存関係を自分で監視する必要がある。
どのDBの場合も、避けたいのはpackage.jsonの版指定が"latest"や"*"になっている構成です。ロックファイルがない場合や依存関係を再解決する場合には、意図せず別メジャーのCLIが入る可能性があります。ORMの乗り換えまで検討する場合は、TypeORMとPrismaを比較|2026年版の違いと選び方(型安全・マイグレーション・パフォーマンス)やDrizzle ORM(ドリズル)とは?使い方・Prismaとの比較・v1.0 RCの変更点【2026年9月】で比べられます。DBの移行やスキーマ設計を含めて相談したい場合は、データベース設計・移行支援で対応しています。
よくある質問
Prismaの最新バージョンはどれですか?
安定版は7.10.1(2026年10月15日公開)です。npmのprismaのlatestタグはPrisma 8のRC(2026年10月16日時点で8.0.0-rc.23)を指していますが、これは正式版ではありません。最新の状態はnpm view prisma dist-tagsで確認できます。
Prisma 8(v8)の正式版はいつ出ますか?
公式のリリース状況ページは2026年10月の見込みとしていますが、GitHubのREADMEは「4〜8週間以内」と書いていて、日付は確定していません。正式版が出ると、Prisma 7の保守期間(18か月)の起点になります。
Prisma 7とPrisma 8の違いは何ですか?
8はTypeScriptで作り直された新しいORMで、PrismaClientの生成をやめ、データベースごとのライブラリからdbを作る形に変わりました。コマンドもgenerateがcontract emitに、migrate devがdb updateになるなど名前が変わっています。対応DBは、RCの時点ではPostgreSQLとMongoDB(早期アクセス)が中心です。
Prisma 6のサポートはいつまでですか?
Prisma 6はセキュリティパッチだけを2026年11月19日まで受け取ります(Prisma 7の公開から12か月)。それ以降は更新が出ないため、MongoDB以外の構成は7への移行を進めてください。
Prisma 7はMySQLで使えますか?
使えます。@prisma/adapter-mariadbをインストールし、PrismaMariaDbをPrismaClientに渡します。一方、Prisma 8のRCにはMySQL用のライブラリがまだ無いため、MySQLの案件は7に固定してください。