What prisma/orm shipped
Written by FoxPlug from the repository's own releases; not affiliated with Prisma. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/prisma/orm; Prisma did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- The ORM client locks the rows a collection reads with forUpdate, forNoKeyUpdate, forShare and forKeyShare until the transaction ends. Pull request #30555
- Migration plan and db update refuse to lose data until each drop is answered with --delete or --rename. Pull request #30648
- --rename Profile:User makes migration plan and db update rename a model or field instead of dropping it. Pull request #30638
- Raw SQL in a TypeScript contract is a sql value, as it is in PSL. Pull request #30558
- A Postgres full-text index can span several weighted fields, and the contract stores it as data. Pull request #30562
- A contract written with defineContract gives ORM rows their field types, with the namespaces the built contract has. Pull request #30663
- FirstOrThrow added to SQL and Mongo ORM collections, with collapsed first overloads. Pull request #30644
- The Prisma 7 reader keeps the columns and tables @ignore hides. Pull request #30672
- The SQL ORM reads and writes only the columns a model's fields map. Pull request #30667
- Autoincrement() can be added to an existing column, and the constraint names Prisma 7 gave a database are kept after Prisma 8 takes over its migrations. Pull request #30606
Why it matters
This week the migration tooling got safer, with migration plan and db update refusing to lose data until each drop is answered and --rename letting a renamed model or field be renamed instead of dropped. Row locking shipped for ORM collections, so a transaction can lock the rows it reads. Contracts gained more of the things schemas already express: sql values, multi-field Postgres full-text indexes, and field types for defineContract.
Changelog entry
- Added row locking to ORM collections: forUpdate, forNoKeyUpdate, forShare and forKeyShare lock the rows read until the transaction ends. Pull request #30555
- Migration plan and db update now refuse to lose data until each drop is answered with --delete or --rename. Pull request #30648
- Added --rename Profile:User to migration plan and db update, so a renamed model or field is renamed instead of dropped. Pull request #30638
- Raw SQL in a TypeScript contract is now a sql value, as it is in PSL. Pull request #30558
- A Postgres full-text index can now span several weighted fields, stored as data in the contract. Pull request #30562
- A contract written with defineContract now gives ORM rows their field types, with the namespaces the built contract has. Pull request #30663
- Added firstOrThrow to SQL and Mongo ORM collections and collapsed the first overloads. Pull request #30644
- The Prisma 7 reader now keeps the columns and tables @ignore hides. Pull request #30672
- The SQL ORM now reads and writes only the columns a model's fields map. Pull request #30667
- Added autoincrement() to an existing column and kept the constraint names Prisma 7 gave a database after Prisma 8 takes over its migrations. Pull request #30606
- Fixed three enum defects: duplicate members compare stored values, db.nativeEnums lists native enums only, and the rc.15 recovery works without migrations. Pull request #30661
- Renamed the collection method apply(fn) to with(fn). Pull request #30635
Row locks on ORM collections, migration plan and db update refusing data loss until each drop is answered, --rename for models and fields, sql values in contracts, and multi-field Postgres full-text indexes. 8.0.0-rc.17 and 8.1.0-dev releases also landed.
This week in the project: the ORM client locks the rows a collection reads with forUpdate, forNoKeyUpdate, forShare and forKeyShare until the transaction ends. Migration plan and db update refuse to lose data until each drop is answered with --delete or --rename, and --rename makes a renamed model or field a rename instead of a drop. Raw SQL in a TypeScript contract is now a sql value, a Postgres full-text index can span several weighted fields, and a contract written with defineContract gives ORM rows their field types. firstOrThrow was added to SQL and Mongo collections. Releases 8.0.0-rc.17 and 8.1.0-dev.9 also shipped.
Week of September 28, 2026
What shipped
- Hovering over names in.prisma files now shows their declarations and documentation. Pull request #30569
- The language server completes generic-block values and suggests candidates from block specs. Pull request #30567
- Nullable scalar-list elements are now supported, with? position determining whether elements or the list itself can be null. Pull request #30051
- Tables can be renamed in migrations using this.renameTable without losing rows. Pull request #30331
- Postgres migrations now correctly handle autoincrement() defaults and float values read as numbers. Pull request #30530
- The cache middleware now supports invalidation, opaque entry metadata, and pluggable key derivation. Pull request #30530
- Prisma 8 projects can now use Prisma 6 MongoDB schemas as contract sources while Prisma 6 continues running the app. Pull request #30521
- Serverless connect() now returns a connection with db.orm, db.transaction, and db.prepare. Pull request #30482
- Multi-file schemas are now supported in the language server protocol. Pull request #30456
- Version 8.0.0-rc.14 released. Pull request #30541
Why it matters
This week focused on schema language improvements, data type consistency across storage and application layers, and better migration handling. Multi-file schema support and the cache middleware overhaul expand what developers can do, while nullable list elements and table renaming migrations solve long-standing workflow gaps.
Changelog entry
- Hovering a name in a.prisma file shows its declaration and documentation Pull request #30569
- Language server completes generic-block values and suggests namespace-qualified entity references Pull request #30567
- Support nullable scalar-list elements with position-independent? notation Pull request #30051
- Allow table renames in migrations with this.renameTable without data loss Pull request #30331
- Fix Postgres default handling for autoincrement() and SQL float values Pull request #30530
- Cache middleware now supports invalidation and pluggable key derivation Pull request #30530
- Read unmodified Prisma 6 MongoDB schemas as contract sources in Prisma 8 projects Pull request #30521
- Multi-file schemas supported in language server protocol Pull request #30456
- Serverless connect() returns combined session with db.orm, db.transaction, and db.prepare Pull request #30482
Prisma 8.0.0-rc.14 ships hover docs in PSL files, completion for generic blocks, multi-file schema support, and fixes for nullable lists, table renames, and Postgres defaults.
Prisma 8.0.0-rc.14 is out. This week: hover shows declarations and docs in schema files; language server completes generic-block values; nullable scalar-list elements work correctly; tables rename without losing rows; multi-file schemas in LSP; serverless connect() gains db.orm and db.transaction; and Postgres migrations handle autoincrement() and float values properly.
Week of September 21, 2026
What shipped
- Mutation default generators now run once in the framework for both SQL and MongoDB databases. Pull request #30406
- Prisma contract print command writes a configured contract as Prisma 8 PSL that reads back identically. Pull request #30315
- Prisma6Schema reads a Prisma 6 MongoDB schema.prisma file as a contract source without rewriting. Pull request #30405
- MongoDB schemas can declare automatic timestamps with temporal.createdAt() and temporal.updatedAt(). Pull request #30403
- MongoDB schemas now support Int64, Decimal128, Binary, and Json field types with target-owned codecs. Pull request #30396
- ORM orderBy can now sort by a related row's column, relation counts, and control null placement. Pull request #30402
- PSL schemas can span multiple files using glob patterns and the // use prisma-8 directive. Pull request #30379
- MongoDB ORM keeps included relations in queries when select() and include() are combined. Pull request #30170
- Postgres RLS policies are now dropped before DDL changes that reference them to avoid migration errors. Pull request #30232
- A Prisma 7 project can run orm init once to set up Prisma 8 alongside it. Pull request #30291
Why it matters
This week shipped MongoDB feature parity for timestamps and advanced types, multi-file schema support for better project organization, and improvements to the Prisma 7 to 8 migration path. Enhanced ORM query capabilities and fixes to composite foreign keys and identifier length handling improve reliability for production use.
Changelog entry
- Mutation default generators run once in the framework for SQL and MongoDB Pull request #30406
- Prisma contract print writes the configured contract as Prisma 8 PSL Pull request #30315
- Prisma6Schema reads Prisma 6 MongoDB schema.prisma as contract source Pull request #30405
- MongoDB: temporal.createdAt() and temporal.updatedAt() for automatic timestamps Pull request #30403
- MongoDB: Int64, Decimal128, Binary, and Json field types with target-owned codecs Pull request #30396
- ORM orderBy: sort by related row columns, relation counts, and null placement Pull request #30402
- Multi-file schema support with glob patterns and // use prisma-8 directive Pull request #30379
- MongoDB ORM: keep included relations in $project when select() and include() are combined Pull request #30170
- Postgres: drop RLS policies before DDL changes to avoid migration errors Pull request #30232
- SQL ORM: use every key column in includes, nested writes, and multi-table variants Pull request #30107
- CLI: Prisma 7 projects can run orm init to set up Prisma 8 alongside Pull request #30291
- MongoDB: accept multi-host connection strings and mask credentials in CLI output Pull request #30354
- SQL: reject LIMIT or OFFSET that is not a non-negative integer Pull request #30133
- Postgres: measure identifier length in bytes, not characters Pull request #30127
V8.0.0-rc.12-dev ships MongoDB timestamps, Int64/Decimal128/Binary/Json types, multi-file schemas, advanced orderBy, and Prisma 7 migration improvements.
V8.0.0-rc.12-dev continues building out MongoDB feature parity with timestamps and rich type support, adds multi-file schema organization, enhances ORM querying with related-row sorting, and improves the Prisma 7 to 8 upgrade path. Fixes ensure composite keys and PostgreSQL identifiers work correctly.
Week of September 14, 2026
What shipped
- Models without @@map now name their tables verbatim as written instead of applying case transformations, and the planner rejects the silent rename. Pull request #30317
- Raw SQL column defaults are now written as sql... tagged literals instead of dbgenerated("..."). Pull request #30325
- The TypeScript sql tag now resolves \$ so raw defaults can contain ${ without escaping. Pull request #30347
- The ORM now supports prepared row reads with specialized decoding. Pull request #30260
- Prepared aggregate and grouped queries are now available. Pull request #30309
- Postgres Date codec and field presets for timestamp handling via temporal.createdAtJsDate() and similar are now available. Pull request #30288
- Repeated same-name namespace blocks in a single PSL file now contribute declarations to one logical namespace. Pull request #30343
- The contract infer command now prints nullable list columns correctly as Type[]? instead of Type[]. Pull request #30313
- Upgrade instructions can now be added in separate folders per change to avoid merge conflicts. Pull request #30311
- Prisma 7 users can now point Prisma 8 at their existing schema.prisma instead of running contract infer and hand-fixing it. Pull request #30287
Why it matters
This week brings table naming alignment with authored schema, modernizes SQL defaults syntax, and ships prepared query support for better performance. The changes improve the upgrade path from Prisma 7 and reduce friction in schema definition and inference.
Changelog entry
- Models without @@map now name their tables verbatim instead of applying case transformations; the planner rejects silent renames. Pull request #30317
- Raw SQL column defaults are now written as sql... tagged literals instead of @default(dbgenerated(...)). Pull request #30325
- The TypeScript sql tag now resolves \$ so raw defaults can contain ${ without escaping. Pull request #30347
- The ORM now supports prepared row reads with specialized decoding. Pull request #30260
- Prepared aggregate and grouped queries are available. Pull request #30309
- Postgres Date codec and temporal field presets (createdAtJsDate, updatedAtJsDate) are now available. Pull request #30288
- The contract infer command now prints nullable list columns as Type[]? instead of Type[]. Pull request #30313
- Repeated same-name namespace blocks in a PSL file now contribute declarations to one logical namespace. Pull request #30343
- PSL now tracks source provenance by syntax root for internal groundwork toward multifile support. Pull request #30335
- Prisma 7 users can now point Prisma 8 at their existing schema.prisma without running contract infer and hand-fixing. Pull request #30287
Prisma 8 now uses verbatim table names by default, writes SQL defaults as sql literals, and supports prepared queries for faster row reads.
This week Prisma 8 aligns table names with what you write (no more silent case transforms), modernizes SQL column defaults from dbgenerated() to sql literals, and ships prepared queries for optimized row reads and includes. The contract infer command now correctly prints nullable arrays. Prisma 7 users can upgrade by pointing at their existing schema instead of hand-fixing inferred output.