JavaScript

Prismaのバージョン完全ガイド|最新v7の変更点・確認方法とv6からの移行

Node.js/TypeScript向けORMのPrismaは、2025年11月19日にv7.0が正式リリースされ、2026年時点の最新はv7系(本記事執筆時点でv7.7)です。v7ではデータベースクライアントからRustを取り除きTypeScriptで作り直したため、v6以前とは設定・依存パッケージ・モジュール形式が大きく変わりました。この記事では「今使うべき最新版はどれか」「自分のPrismaのバージョンをどう確認するか」「v6からv7へどう上げるか」を、公式のリリース情報にもとづいて整理します。

まとめ:Prismaバージョンの要点

  • 2026年時点の推奨最新はPrisma ORM v7系。v7.0が2025年11月19日にGA(正式版)となり、以降v7.2 → v7.4 → v7.5 → v7.6 → v7.7(2026年4月7日)とマイナー更新が続いている。
  • v7の最大の変更はRust製クエリエンジンの廃止。Prisma Clientを純TypeScript化し、公式値でバンドル約90%削減・クエリ実行最大3倍・ESM対応を実現。
  • インストール済みのバージョンは npx prisma -v(または package.json の依存欄)で確認する。
  • v6→v7は破壊的変更が多い。provider名の変更、prisma.config.tsへの設定移動、ドライバアダプタの明示指定が必須化、ESM化、.envの自動読み込み廃止、$use()ミドルウェア廃止などを移行前に確認する。
  • 「v8」という番号ではなく、完全TypeScript基盤の次世代Prisma Nextが2026年3月に発表され開発が進行中。v7は今後12か月のサポートが表明されており、本番運用は当面v7でよい。

Prismaの現行バージョンとリリース状況(2026年時点)

Prismaは概ね四半期ごとにメジャー番号を上げてきました。2024年後半にv6、2025年11月19日にv7.0が正式リリースされ、以降はv7系のマイナー更新で機能追加とバグ修正が続いています。公式が本番推奨としているのはv7で、リリース時点で今後12か月のサポートが表明されています。したがって新規開発・既存の更新ともに、選ぶべきは基本的にv7系です。

v7.0以降の主なマイナー更新は次のとおりです。番号だけでなく「何が入ったか」で選ぶと、上げる価値の判断がつきます。

バージョン 時期 主な内容
v7.0.0 2025-11-19 Rust廃止・TypeScript化クライアントがデフォルトに(GA)
v7.2.0 2025-12-17 migrateコマンドに–urlフラグ復活・Bun対応のprisma init・設定改善
v7.4.0 2026-02-11 Prisma Client向けクエリキャッシュ層を追加
v7.5.0 2026-03-11 SQL系DBでセーブポイントによるネストトランザクションのロールバックに対応
v7.7.0 2026-04-07 Prisma Postgresのセットアップを対話的に行う prisma bootstrap を追加

「v8はいつ出るのか」という疑問については、現時点でv8という番号のロードマップは公表されていません。代わりにPrismaチームは2026年3月、完全にTypeScriptで書き直した新基盤Prisma Nextを「次の進化」として発表しました。これはv7の延長線上にある将来基盤であり、当面の本番運用はv7系で問題ありません。数値が速く変わる領域なので、正確な最新番号は公式のリリースノートで確認してください。

インストール済みPrismaのバージョン確認方法

「今このプロジェクトが使っているPrismaは何番か」を調べる方法は複数あり、目的によって使い分けます。CLIとクライアントライブラリはバージョンが一致しているのが基本ですが、更新漏れでずれることがあるため両方を見ます。

最も手早いのはCLIのバージョン表示です。CLI本体に加えてクライアントや対応スキーマエンジンのバージョンもまとめて出ます。

# CLIとクライアントのバージョンをまとめて表示
npx prisma -v
# 同じ結果(-v は version のエイリアス)
npx prisma version

依存として固定されている番号を知りたいときは package.json を見ます。CLIの prisma と実行時ライブラリの @prisma/client は同じメジャー・マイナーに揃えるのが原則です。

// package.json(抜粋)
"devDependencies": { "prisma": "^7.7.0" },
"dependencies": { "@prisma/client": "^7.7.0" }

実際にインストールされた解決済みバージョンは npm list で確認できます。コード内から取得したい場合は、クライアントが公開する定数を使います。

# 実際にインストールされた番号を確認
npm list prisma @prisma/client

# アプリのコードからクライアントのバージョンを取得
import { Prisma } from './generated/prisma'
console.log(Prisma.prismaVersion.client)

CLIの番号と @prisma/client の番号がずれている場合は、片方だけ更新された状態です。生成物と実行時の不整合の原因になるため、両方を同じ番号に揃えてから npx prisma generate を実行し直してください。

Prismaバージョンの変遷|v5・v6・v7の違い

v5→v6→v7でどこが変わったのかを一望すると、アップグレードの重さが見積もれます。v5からv6は比較的移行が軽い一方、v6からv7は基盤の作り替えを含むため影響が大きい点が最大の分かれ目です。

観点 v5 v6 v7
クライアント基盤 Rust製エンジン Rust製エンジン TypeScript製(Rust廃止)
モジュール形式 CommonJS中心 CommonJS中心 ESM(type: module 前提)
generator provider prisma-client-js prisma-client-js prisma-client
DBドライバ エンジンに内蔵 エンジンに内蔵 ドライバアダプタを明示指定
接続設定の場所 schema.prisma schema.prisma prisma.config.ts
クライアント生成先 node_modules(既定) node_modules(既定) output指定が必須

つまり「v6以前は設定もドライバもPrismaが内部で面倒を見る」構成、「v7は必要な部品を開発者が明示的に組み立てる」構成へと設計思想が変わりました。v6のまま安定運用しているプロジェクトが慌ててv7へ上げる必要はありませんが、サーバーレスでのバンドルサイズやコールドスタートが課題なら、v7の軽量化は上げる十分な理由になります。

Prisma v7の主な変更点と性能改善

v7の中身は「性能改善」と「破壊的変更」の2つに分けて捉えると整理しやすくなります。前者は上げるメリット、後者は上げる前に潰しておく作業です。

Rust廃止とTypeScript化による性能改善

v7ではPrisma ClientからRust製クエリエンジンを取り除き、TypeScriptで再実装しました。RustとJavaScriptランタイム間の通信層がボトルネックになっていたためで、直感に反して「Rustをやめたほうが速くなった」という結果になっています。公式が示す数値は、バンドル出力が約90%削減、クエリ実行が最大3倍、CPU・メモリ使用量も低下、というものです。あわせてESMとして配布されるため、Bun・Deno・Node.jsのネイティブESM環境でそのまま動きます。

型生成も見直され、公式計測ではスキーマ評価に必要な型が約98%減り、クエリ評価の型も約45%減、フルの型チェックが約70%高速化したとされています。大規模スキーマでエディタの補完が重い、ビルドの型チェックが遅い、といった開発時のストレスに効く改善です。

破壊的変更(アップグレード前に必ず確認)

v7は基盤を作り替えた分、v6から見て壊れる箇所が多くあります。移行前に自分のコードが該当するかを1つずつ確認してください。

  • provider名の変更:generatorの providerprisma-client-js から prisma-client へ変更する。
  • output指定が必須:クライアントは node_modules に自動生成されなくなり、generatorに output(例:./generated/prisma)の指定が必要。
  • ESM化package.json"type": "module"、tsconfigに "module": "ESNext""moduleResolution": "bundler" を設定する。
  • ドライバアダプタが必須:DB接続はドライバアダプタを明示的に渡す(後述)。
  • 設定の移動:接続URL・スキーマ位置・マイグレーション設定はプロジェクト直下の prisma.config.ts に移す。directUrl もこちらへ。
  • .envの自動読み込み廃止:環境変数は自動で読まれない。dotenv で明示的に読み込むか、実行環境側で渡す(Bunは .env を自動読込)。
  • migrate/db pushがgenerateを自動実行しないprisma migrate devprisma db push の後に prisma generate を明示実行する。マイグレーション後の自動シードも廃止され、prisma db seed を別途実行する。
  • $use()ミドルウェア廃止prisma.$use() は削除。Client Extensionsへ置き換える。
  • SSL検証の厳格化:node-pg採用に伴い、無効なSSL証明書はデフォルトで失敗するようになった。必要に応じて証明書を正しく設定するか、接続設定で明示的に許可する。

Prisma v6からv7へアップグレードする手順

破壊的変更を把握したら、次の順で移行します。いきなり本番へ上げず、ブランチを切って手元で generate と型チェックが通ることを確認してから進めてください。マイグレーション機能の挙動差が気になる場合は、PrismaとTypeORMのマイグレーション機能を比較する記事もあわせて参考にできます。

1. パッケージをv7へ更新します。

npm install @prisma/client@7
npm install -D prisma@7

2. schema.prisma のgeneratorを書き換えます(provider変更とoutput追加)。

generator client {
  provider = "prisma-client"
  output   = "../generated/prisma"
}

3. プロジェクト直下に prisma.config.ts を作り、接続情報とスキーマ位置を移します。.env は自動で読まれないため、ここで明示的に読み込みます。

import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'

export default defineConfig({
  schema: './prisma/schema.prisma',
  datasource: { url: env('DATABASE_URL') },
})

4. データベースに応じたドライバアダプタを追加し、PrismaClient に渡します(PostgreSQLの例)。

import { PrismaClient } from './generated/prisma'
import { PrismaPg } from '@prisma/adapter-pg'

const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })

5. ESM設定(package.jsontype: module、tsconfigのmodule/moduleResolution)を反映し、クライアントのimportパスを新しいoutput先へ更新します。

6. CLIワークフローを見直します。migrate devdb push のあとに npx prisma generate を明示実行し、シードが必要なら npx prisma db seed を別途実行します。

7. $use() を使っていた箇所はClient Extensionsへ、SSL接続はエラーが出たら証明書設定を見直します。ここまで通れば移行完了です。

データベース別のドライバアダプタ設定(PostgreSQL・MySQL・SQLite)

v7でRustエンジンを外したことに伴い、各DBのドライバは開発者が明示的に入れる形になりました。ここが旧バージョンから上げるときにつまずきやすい箇所で、「prisma 7 mysql adapter」のように具体的なパッケージ名を探す検索が目立ちます。主要DBのアダプタは次のとおりです。

データベース アダプタパッケージ 渡すクラス
PostgreSQL @prisma/adapter-pg PrismaPg
MySQL / MariaDB @prisma/adapter-mariadb PrismaMariaDb
SQLite @prisma/adapter-better-sqlite3 PrismaBetterSqlite3

MySQL(およびMariaDB)を使う場合の例です。アダプタを入れて接続情報でインスタンス化し、PrismaClient に渡します。

npm install @prisma/adapter-mariadb
import { PrismaClient } from './generated/prisma'
import { PrismaMariaDb } from '@prisma/adapter-mariadb'

const adapter = new PrismaMariaDb({
  host: 'localhost', user: 'app', password: 'secret', database: 'appdb',
})
const prisma = new PrismaClient({ adapter })

SQLiteの場合は @prisma/adapter-better-sqlite3PrismaBetterSqlite3)を使い、接続先はファイルパスで指定します。

import { PrismaClient } from './generated/prisma'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'

const adapter = new PrismaBetterSqlite3({ url: 'file:./prisma/dev.db' })
const prisma = new PrismaClient({ adapter })

MySQLはバージョン差(5.7と8.0)で挙動や既定値が異なる点にも注意が必要です。接続先DBの世代を確認したい場合は、MySQL 5.7と8.0の違いを比較(性能・機能・認証とEOL後の移行先)を確認しておくと、アダプタ導入後のトラブル切り分けが楽になります。なお、Prismaチームが提供するマネージドDB「Prisma Postgres」を使う場合は専用の統合が用意されており、標準のPostgreSQLプロトコル互換のため他ツールからも接続できます。

バージョン選定の考え方と他ORMとの位置づけ

「最新だから常にv7」ではありません。判断の軸を具体的に示します。新規プロジェクト、またはサーバーレスでバンドルサイズ・コールドスタートに悩んでいるなら、v7の軽量化とESM対応は明確な利点なので迷わずv7を選びます。一方、v6で安定稼働していてCommonJS前提のビルドや旧来のミドルウェア($use())に深く依存している既存プロジェクトは、破壊的変更の移行コストがメリットを上回ることがあり、次の保守タイミングまで据え置く判断も妥当です。

ORMそのものの選定で迷っているなら、Prisma以外の選択肢も比較対象になります。SQLに近い記述と軽量さを重視するならDrizzle ORM、デコレーターベースの伝統的なスタイルを好むならTypeORMが候補です。TypeScript側の大きな変化を追う文脈では、TypeScript 7のコンパイラ刷新とあわせて型周りの環境を見直すのも有効です。

よくある質問(FAQ)

Prismaの最新バージョンはどれですか?

2026年時点の推奨最新はv7系で、本記事執筆時点ではv7.7です。v7.0が2025年11月19日に正式リリースされ、以降はv7系のマイナー更新が続いています。正確な最新番号は公式のリリースノートで確認してください。

自分のプロジェクトのPrismaのバージョンはどう確認しますか?

npx prisma -v でCLIとクライアントの番号がまとめて表示されます。固定している番号は package.jsonprisma@prisma/client、実際に解決された番号は npm list prisma @prisma/client で確認できます。

Prisma v6とv7の違いは何ですか?

最大の違いはRust製クエリエンジンの廃止です。v7はクライアントを純TypeScript化し、バンドル約90%削減・クエリ最大3倍・ESM対応を実現しました。これに伴いprovider名の変更、prisma.config.tsへの設定移動、ドライバアダプタの必須化などの破壊的変更があります。

Prisma v7はMySQLで使えますか?

使えます。MySQL/MariaDBでは @prisma/adapter-mariadbPrismaMariaDb)をインストールし、接続情報でインスタンス化して PrismaClient に渡します。v7ではドライバアダプタの明示指定が必須です。

Prisma v8は出ますか?

現時点でv8という番号のロードマップは公表されていません。代わりに、完全TypeScript基盤の次世代「Prisma Next」が2026年3月に発表され開発が進行中です。当面の本番運用はv7系で問題ありません。

関連記事

資料請求

RELATED POSTS 関連記事