warningBreaking change

Prisma 8 RC.12: engine, config and schema changes

Announced
24 Sept 2026
Effective
no date announced
Version
8.0.0-rc.12
Source
the vendor’s own page · last checked 29 Sept 2026

What breaks

This release breaks config loading, table naming and schema file handling if you don't adjust for them first.

  • prisma.config.ts files that import defineConfig from @prisma/cli-engine fail to load, since that alias no longer exists (defineConfig from a product package like @prisma/orm-postgres/config is unaffected).
  • Projects that pin @prisma/cli-engine themselves are left on the old 0.4.0 pin unless updated, since @prisma/orm-toolchain now peers an exact version (0.6.1).
  • Config files are now merged from the current directory up to the repository root (first directory with .git), so a project under a stray parent prisma.config.ts silently inherits its values.
  • Relative paths in config fields like contract or migrations.dir now resolve from the config file's own directory instead of the working directory, changing where those paths point.
  • A malformed orm config field now reports as CLI.CONFIG_FIELD_INVALID inside CLI.CONFIG_SECTION_INVALID instead of the old CONFIG.VALIDATION_FAILED.
  • A PSL model without @@map now uses its exact written name as the table (or Mongo collection) name instead of the previous casing, e.g. model UserProfile now maps to table "UserProfile" instead of "userProfile".
  • Running migration plan, db update or migrate against an unmigrated schema stops with MIGRATION.TABLE_NAME_CASE_CHANGED instead of dropping and recreating the table.
  • On Mongo, an unmapped model silently reads an empty collection with no error, since Mongo has no migration planner.
  • Every PSL schema file must start with // use prisma-8 (or the older // use prisma-next) as its first line, or contract emit silently excludes that file from the contract; if no file has the header, emit fails with PSL_NO_OPTED_IN_SCHEMA_FILES.

What to do

Follow the app recipe (for applications) or the extension recipe (for extensions) referenced by the change ids below before upgrading.

  • For engine-pin-moves-to-0-6-1: update prisma.config.ts to import definePrismaConfig instead of defineConfig, and move any direct @prisma/cli-engine pin to 0.6.1.
  • For config-paths-resolve-from-declaring-file: check any parent prisma.config.ts files up to the repo root and add parent: false where inheritance is unwanted, and re-check relative paths like contract or migrations.dir against the config file's own directory.
  • For psl-model-names-table-verbatim: before planning any migration, run the add-model-map script from the upgrade recipe over every .prisma file (including contract.prisma copies under migrations/) to add @@map with the current table name to every unmapped model; run this only once, on a schema written for an earlier release, and before deploying on Mongo.
  • Add // use prisma-8 as the first line of every PSL schema file, or run the upgrade recipe's script that adds it automatically (orm init already writes it for new files).
  • Replace any use of dbgenerated(...) with sql tagged literals, and verify column defaults match their column's data type.

What the vendor said

Prisma ORM v8.0.0-rc.12 adds Postgres full-text search, prepared reads/aggregates, multi-file schemas, and a path for Prisma 7 projects to reuse schema.prisma as the Prisma 8 contract source. It also ships several breaking changes: the engine peer moves to @prisma/cli-engine@0.6.1, models without @@map now name tables verbatim, every schema file needs a version header, dbgenerated(...) is replaced by sql tagged literals, and column defaults must match their column's data type.

Watching more than one repository?

The team plan is not open yet.

No account, and no repository read. We store the address and the date, and nothing else — see privacy.