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 November 2, 2026
What shipped
- V8.0.0-rc.23 ships with MongoDB indexes tracked by name, PostgreSQL convenience scalar types and convenience date and time types on SQLite and MySQL. Release
- Prisma ORM no longer refuses to start when a second copy is loaded, so Composer services that crashed on start run again. Pull request #30961
- MongoDB migrations create and drop each index by its name, so two indexes on the same fields can exist together. Pull request #30952
- ORM create, update, upsert and delete now work on MySQL and return the written rows, as on Postgres. Pull request #30927
- Migration statements can rename, remove and fill value object fields and convert and delete variants on Postgres and SQLite. Pull request #30929
- Migrate dev skips the migration name prompt when stdin is not a TTY, so it no longer hangs in non-interactive environments. Pull request #30941
- MySQL interrupts a statement before destroying its connection, so a failed KILL no longer becomes an unhandled rejection that ends the Node.js process. Pull request #30931
- Supabase() accepts the options postgres() takes, and a released role session no longer keeps its role. Pull request #30920
- A Supabase database whose pack extensions live in schema extensions now adopts with db sign. Pull request #30956
- Mongo() takes extensions and refuses a contract whose required extensions it is not given. Pull request #30943
Why it matters
This week adds MongoDB index names in migrations, convenience scalar and date types across PostgreSQL, SQLite and MySQL, and working create, update, upsert and delete on MySQL. It also fixes startup, migration prompts and MySQL connection handling that could crash a process.
Changelog entry
- V8.0.0-rc.23: MongoDB indexes carry their names and migrations create and drop each by name; PostgreSQL scalars become convenience types; SQLite and MySQL get convenience date and time types. Release
- Bump version to 8.0.0-rc.23 and publish under the latest dist-tag. Pull request #30962
- Prisma ORM no longer refuses to start when a second copy is loaded. Pull request #30961
- MongoDB migrations create and drop each index by its name, allowing two indexes on the same fields. Pull request #30952
- MySQL gets the convenience types DateTime, Date, Time and Duration. Pull request #30950
- ORM create, update, upsert and delete work on MySQL and return the written rows. Pull request #30927
- Migration statements rename, remove and fill value object fields and convert and delete variants on Postgres and SQLite. Pull request #30929
- Mongo() takes extensions and refuses a contract whose required extensions it is not given. Pull request #30943
- Migrate dev skips the migration name prompt when stdin is not a TTY. Pull request #30941
- Supabase() takes the options postgres() takes; a released role session no longer keeps its role. Pull request #30920
- The Prisma 6 MongoDB reader rejects index pairs Prisma 6 refuses; MongoDB PSL and TypeScript merge duplicate indexes. Pull request #30921
- MySQL interrupts a statement before destroying its connection, so a failed KILL is never an unhandled rejection. Pull request #30931
V8.0.0-rc.23 is out: MongoDB migrations track indexes by name, PostgreSQL scalars become convenience types, and SQLite and MySQL get convenience date and time types. Also this week: MySQL create, update, upsert and delete return written rows, and migrate dev no longer hangs witho
This week's release candidate, v8.0.0-rc.23, brings named MongoDB indexes to migrations, convenience scalar types on PostgreSQL, and convenience date and time types on SQLite and MySQL. MySQL create, update, upsert and delete now return the written rows, as they do on Postgres. Migration statements can rename, remove and fill value object fields and convert and delete variants on Postgres and SQLite. Prisma ORM no longer refuses to start when a second copy is loaded, migrate dev no longer prompts for a name without a TTY, and a failed MySQL KILL no longer turns into an unhandled rejection.
Week of October 26, 2026
What shipped
- A new citext pack reads @db.Citext columns, so a Prisma 7 database with citext columns can be adopted with db sign. Pull request #30904
- Contracts now declare Postgres extensions, so db sign adopts databases that use pgvector, PostGIS or ParadeDB. Pull request #30902
- The Prisma 8 constructor suggestion for a renamed @db.* type now names the type it maps to, such as @db.Text to String. Pull request #30909
- A MongoDB field with both @unique and @@index now gets one unique index, and identical indexes in a collection merge instead of being refused. Pull request #30894
- Connect() on a client is safe to call again: a second call without options resolves with the same runtime instead of rejecting. Pull request #30899
- The MySQL drivers now run on the mariadb package, sending every value in a server-side prepared statement. Pull request #30893
- Each MySQL statement is sent in one round trip, with the mariadb package substituting values. Pull request #30918
- Mongo() now creates its driver from the execution stack, as postgres() does. Pull request #30906
- MongoDB queries take an execution context as SQL queries do, so only validating entry points accept a contract. Pull request #30865
- A migration plan and db update can rename or delete an enum value on Postgres and SQLite, and update the rows that hold it. Release
Why it matters
This week closes out the convenience date and time types project and the MongoDB authoring project, and fixes npm publishing, which had failed on main since 23 October. Prisma 7 databases using citext, pgvector, PostGIS or ParadeDB can now be adopted with db sign, and the MySQL path gains single round trip statements and prepared-statement values.
Changelog entry
- Read @db.Citext through a new citext pack so Prisma 7 databases with citext columns adopt with db sign. Pull request #30904
- Contracts declare Postgres extensions so db sign adopts databases using pgvector, PostGIS or ParadeDB. Pull request #30902
- Suggest the Prisma 8 constructor a renamed @db.* type maps to, such as @db.Text to String. Pull request #30909
- A MongoDB field with both @unique and @@index gets one unique index, and identical indexes merge. Pull request #30894
- Connect() on a client is safe to call again and resolves with the same runtime. Pull request #30899
- MySQL drivers run on the mariadb package with every value in a prepared statement. Pull request #30893
- MySQL statements are sent in one round trip with values substituted by the mariadb package. Pull request #30918
- Mongo() creates its driver from the execution stack, as postgres() does. Pull request #30906
- MongoDB queries take an execution context, and only validating entry points accept a contract. Pull request #30865
- Migration plan and db update can rename or delete an enum value on Postgres and SQLite and update its rows. Release
- Read Prisma 7 @db.Bit, VarBit, Xml, Oid and Money columns, and read and write money in any locale. Pull request #30900
- Refuse to run when two copies of Prisma ORM are present and report which ones. Pull request #30883
This week: citext and Postgres extension support in db sign, MySQL statements in one round trip, MongoDB index merging, and connect() that is safe to call twice. Publishing to npm is fixed after failing since 23 October.
This week's work on prisma/orm: db sign now adopts Prisma 7 databases that use citext columns or extensions such as pgvector, PostGIS and ParadeDB. MySQL statements go out in one round trip through the mariadb package, and a MongoDB field with both @unique and @@index gets one unique index. Calling connect() on a client again is now safe. Publishing to npm, which had failed on main since 23 October, is fixed. The convenience date and time types project and the MongoDB authoring project both closed out.
Week of October 19, 2026
What shipped
- Version 8.0.0-rc.20 is released, with ORM commands running on cli-engine 0.9.0 and piped output printing tab-separated data lines unless --json is passed. Release
- A MySQL target can emit a contract and read a MySQL database's structure. Pull request #30836
- MySQL can migrate, verify and sign a database, and each runner reports what a failed migration left behind. Pull request #30841
- Type aliases can set @onCreate and @onUpdate, and the contract stores the real column type instead of the alias name. Pull request #30819
- Prisma 8 can migrate a changed relation action or primary key, and Prisma 7 migrate commands name the Prisma 8 command to use. Pull request #30774
- Migration plan and db update rename or delete an enum value and update the rows that hold it. Pull request #30849
- A closed client's promise-returning members now reject instead of throwing at the call. Pull request #30840
- A Supabase client shuts down like a Postgres client, because all role work goes through one role scope. Pull request #30828
- On SQLite, each parameter is bound to its own numbered placeholder, so a joined query returns the rows it should. Pull request #30853
- An SQL builder insert must include every column that is not nullable and has no default. Pull request #30830
Why it matters
This week adds a MySQL target that can emit contracts, read database structure, migrate, verify and sign, and changes how ORM commands print output when piped. It also fixes migration handling for renamed enum values and changed relation actions and primary keys, and makes type aliases carry generated values. Several driver and client behaviors are corrected, including SQLite parameter binding and promise rejection on closed clients.
Changelog entry
- Release 8.0.0-rc.20: ORM commands run on cli-engine 0.9.0, and piped commands print tab-separated data lines unless --json is passed. Release
- Version bumped from 8.0.0-rc.19 to 8.0.0-rc.20. Pull request #30838
- Added a MySQL target that emits a contract and reads a MySQL database's structure. Pull request #30836
- MySQL can migrate, verify and sign a database, and each runner reports what a failed migration left behind. Pull request #30841
- Type aliases can set @onCreate and @onUpdate, and the contract stores the real column type instead of the alias name. Pull request #30819
- Prisma 8 can migrate a changed relation action or primary key, and Prisma 7 migrate commands name the Prisma 8 command. Pull request #30774
- Migration plan and db update rename or delete an enum value and update the rows that hold it. Pull request #30849
- Migration statements rename, move and delete Postgres namespaces. Pull request #30823
- Promise-returning members of a closed client reject instead of throwing at the call. Pull request #30840
- A Supabase client shuts down like a Postgres client through one role scope. Pull request #30828
- SQLite binds each parameter to its own numbered placeholder. Pull request #30853
- SQL builder inserts must include every column that is not nullable and has no default. Pull request #30830
8.0.0-rc.20 is out: ORM commands run on cli-engine 0.9.0, so piped output is tab-separated and JSON needs --json. MySQL can now emit a contract, read a database's structure, migrate, verify and sign. Migrations rename or delete enum values and update the rows, and type aliases ca
Release 8.0.0-rc.20 is out. ORM commands now run on cli-engine 0.9.0, so a piped command prints tab-separated data lines and scripts that read JSON must pass --json. Type aliases in the schema can set @onCreate and @onUpdate, and the contract stores each column's real type instead of the alias name. MySQL gains a target that emits a contract and reads a database's structure, plus migrate, verify and sign against MySQL 8.4, with each runner saying what a failed migration left behind. Migration plan and db update now rename or delete an enum value and update the rows that hold it, and Prisma 8 can migrate a changed relation action or two-column primary key. Smaller fixes: SQLite binds each parameter to its own numbered placeholder, and promise-returning members of a closed client reject inst
Week of October 12, 2026
What shipped
- Removed the @noCheck attribute and now a list that allows null elements is written as T?[] for list columns. Pull request #30741
- Migrations now skip an operation only when its full effect is already in place. Pull request #30752
- Contract infer now reads column types from data types, and Unsupported(...) is no longer emitted for types such as hstore and tsquery. Pull request #30735
- A contract written with defineContract now gets the same ORM types as an emitted one, and filters accept plain strings. Pull request #30709
- Postgres(), postgresServerless(), sqlite() and supabase() now take a log option so runtime warnings and swallowed hook errors are no longer discarded. Pull request #30707
- A client such as the ORM can group its statements under one activity that middleware can observe or answer. Pull request #30706
- MongoDB migration plan can rename collections and fields, and asks before removing a field. Pull request #30691
- Packages can contribute collection methods computed from a model. Pull request #30717
- MongoDB collection validators are now derived in @internal/mongo-contract, so TypeScript contracts can get them. Pull request #30733
- A pg.enum column can now name a
native_enumdeclared in another namespace. Pull request #30721
Why it matters
This week brings a breaking change to how nullable list elements are declared, and several improvements to migrations, contract inference and MongoDB support. It also adds middleware visibility into grouped statements and makes runtime warnings from database adapters available. Users of the ORM and contract tools will see more consistent types and clearer behavior around schema changes.
Changelog entry
- Remove @noCheck; a list that allows null elements is written T?[]. Pull request #30741
- Migrations skip an operation only when its full effect is in place. Pull request #30752
- Contract infer reads column types from data types, and Unsupported(...) leaves Prisma 8. Pull request #30735
- A defineContract contract gets the same ORM types as an emitted one, and filters accept plain strings. Pull request #30709
- Postgres(), postgresServerless(), sqlite() and supabase() take a log option. Pull request #30707
- A client can group statements under one activity middleware can observe or answer. Pull request #30706
- MongoDB migration plan renames collections and fields, and asks before removing a field. Pull request #30691
- Packages contribute collection methods computed from a model. Pull request #30717
- MongoDB collection validators are derived in @internal/mongo-contract. Pull request #30733
- A pg.enum column can name a
native_enumof another namespace. Pull request #30721 - Mongo enum members are stored as their codec stores them, with the same checks as SQL enums. Pull request #30711
- Migration plan asks before a lossy type change, and writes slots to fill only for --convert and --backfill. Pull request #30695
This week: @noCheck removed and nullable list elements are written T?[]; migrations skip an operation only when its full effect is in place; contract infer reads column types from data types; defineContract gets the same ORM types as emitted contracts; database adapters take a lo
This week in the Prisma ORM repository: @noCheck is removed and a list that allows null elements is now written T?[]; migrations skip an operation only when its full effect is in place; contract infer reads column types from data types and no longer emits Unsupported(...) for hstore or tsquery; a contract written with defineContract gets the same ORM types as an emitted one and filters accept plain strings; the database adapters postgres(), postgresServerless(), sqlite() and supabase() take a log option so runtime warnings and swallowed hook errors are no longer discarded; middleware can observe or answer a grouped activity; MongoDB migration plan renames collections and fields and asks before removing a field; and packages can contribute collection methods computed from a model.
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.