Open6
Prisma 4.x to 5.x メモ
Prisma 5 に必要な Minimum バージョンを確認しましょう。
- Node.js 16.13
- TypeScript 4.7
- PostgreSQL 9.6
- 組み込みの SQLite 3.41.2
既存の 4 から 5 へ更新する際は、公式のマイグレーションガイドを確認します。
Prisma ORM 5 へアップグレードするため、両方のパッケージを更新する必要があります。
# npm
npm install @prisma/client@5
npm install -D prisma@5
#yarn
yarn up prisma@5 @prisma/client@5
# pnpm
pnpm upgrade prisma@5 @prisma/client@5
jsonProtocol により、起動時間が大幅に改善されました。この対応により、非推奨 API の --preview-feature
も削除されている点に注意しましょう。
(Prisma 4 まで)
generator client {
provider = "prisma-client-js"
previewFeatures = ["jsonProtocol"]
}
(Prisma 5 では)
generator client {
provider = "prisma-client-js"
}
- Prisma Client から
rejectOnNotFound
パラメータが削除 - Prisma CLI から、非推奨フラグが削除
--clean
--early-access-feature
--experimental
--experimental-reintrospection
--force
--preview-feature
対象要素がひとつでも必ず、配列として渡さなければいけなくなりました。
-
OR
演算子 -
in
演算子、notIn
演算子 - PostgreSQL における JSONpath フィールド
- スカラーリスト
- MongoDB のコンポジットタイプ
(Prisma 4 まで)
await prisma.user.findMany({
where: {
OR: { email: 'alice@prisma.io' }
}
})
(Prisma 5 では)
await prisma.user.findMany({
where: {
OR: [{ email: 'alice@prisma.io' }]
}
})
Prisma Client から runtime/index.js が削除されました。
(Prisma 4 まで)
import { Decimal } from '@prisma/client/runtime'
Decimal
(Prisma 5 では)
import { Prisma } from '@prisma/client'
Prisma.Decimal
beforeExit
ライブラリエンジンからフックが削除され、代わりに Node.js の終了イベントを使用します。
(Prisma 4 まで)
this.$on('beforeExit', async () => {
await app.close();
});
(Prisma 5 では)
process.on('exit', , async () => {
await app.close();
});