Prisma 3.9.0リリース
2022年2月2日にPrismaの3.9.0がリリースされたので、GitHubのリリースを日本語訳しています。 Prismaユーザー待望のinteractiveTransactionsの並行処理に関する問題
も解決されたようなので、3.9.0には早くアップデートしたいですね。
主な改善点・新機能
interactiveTransactionsの並行処理に関する問題
3.9.0 では、読み取りと書き込みが同時に行われた場合のタイムアウトとロールバックに関する多くの問題を修正しました。
これはinteractiveTransactionsのプレビュー リリースの一部であるため、この機能を有効にするには interactiveTransactions プレビュー機能を有効にする必要があります。
タイムアウトが発生したり、interactiveTransactionsが期待通りに動作しなかったりした場合は、今こそアップグレードして再挑戦する時です!
インタラクティブ・トランザクションについて詳しくは、ドキュメントをご覧ください。
Prisma Migrateの改良で移行のトラブルシューティングを実現
昨年、私たちはPrisma Migrateを一般公開しました。それ以来、私たちはお客様からフィードバックをいただき、移行を構築、テスト、および展開する際に経験する課題を理解しました。
このたび、移行に関するトラブルシューティングの経験を向上させるために、新しいCLIコマンドを導入することをお知らせします。
prisma migrate diff
prisma db execute
prisma migrate diff コマンドは、データベーススキーマ、Prisma スキーマファイル、または移行履歴の diff を作成します。このコマンドにスキーマの状態とスキーマの状態を入力するだけで、SQLスクリプトまたは人間が読める diff が返されます。
prisma migrate diffの仲間として、データベースに対してSQLスクリプトを実行するprisma db executeも作りました。prisma migrate diffの出力を直接prisma db executeにパイプすることができます。
どちらのコマンドも非対話型なので、いくつかの自動化ツールを使って、前方移行や後方移行など、多くの新しいワークフローを構築することが可能です。
ちらのコマンドもPreview版です。
詳細は、こちら。
CockroachDBのプレビュー対応について
CockroachDBのプレビューサポートを発表します🎉。
CockroachDBは、開発者の俊敏性を維持し、運用のオーバーヘッドを削減しながら、効率的に拡張する能力に秀でた分散型SQLデータベースです。
PrismaのCockroachDBサポートは、Cockroach Labsチームとのコラボレーションの成果であり、このリリースにより、既存のCockroachDBプロジェクトでPrismaをイントロスペクションで使用できるようになります。
詳しくはリリースブログポストをご覧ください。
スタートガイドでお試しください。
フィードバックの共有
今週木曜日は、Cockroach LabsのAydrian HowardがCockroachDBについて説明し、デモを行うWhat's new in Prisma 3.9.0にご参加ください。
MongoDBのRawクエリサポート
Prisma バージョン 3.9.0 では、MongoDB (Preview) コネクタにロークエリを導入しました。ロークエリは、Prismaがまだサポートしていない次のようなクエリを書くのに便利です。
// To find zero or more documents matching a filter
const result = await prisma.user.findRaw({
filter: { age: { $gt: 25 } },
options: { projection: { _id: false } },
})
// To perform aggregation operations on a collection
await prisma.user.aggregateRaw({
pipeline: [
{ $match: { status: 'registered' } },
{ $group: { _id: '$country', total: { $sum: 1 } } },
],
})
// To run a command against the database
await prisma.$runCommandRaw({
aggregate: 'User',
pipeline: [
{ $match: { name: 'Bob' } },
{ $project: { email: true, _id: false } },
],
explain: false,
})
MongoDB の raw クエリ API は、Prisma の $queryRaw SQL API とは異なり、 データベース間の低レベルの違いを処理することで、よりよい API と開発者の体験を提供することができます。
Prismaの新しいrawクエリAPIとその使用方法については、ドキュメントを参照してください。
Discussion