Releases: prisma/prisma
4.14.1
Today, we are issuing the 4.14.1
patch release.
Fix in Prisma Client
4.14.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Request for feedback for Preview features
We would appreciate your feedback on a handful of Preview features to help us move them to General Availability soon. The Preview features include:
- PostgreSQL extensions
- Extended where unique
- Field reference support
- Order by Nulls
- Count by filtered relation
You can test them by enabling the Preview feature in your Prisma schema and giving them a try already in your Prisma schema, e.g., PostgreSQL extensions, or regenerating Prisma Client and trying them in your queries.
Highlights
Improved Prisma Client startup performance
For the last couple of months, we've been working hard to improve the performance of Prisma Client. We also published a blog post on how How We Sped Up Serverless Cold Starts with Prisma by 9x, which we recommend you give it a read.
This release continues with the same theme by making the size of the generated Prisma Client smaller. We have roughly halved the size of Prisma Client's dependencies.
More Introspection warnings for unsupported features
In 4.13.0, we introduced the first 6 introspection warnings that surface the existence of these features in your database and link to our documentation on how to manually work around the Prisma Schema with unsupported database features.
In this release, we added 3 more introspection warnings for the following features:
- Check Constraints (MySQL + PostgreSQL)
- Exclusion Constraints
- MongoDB $jsonSchema
On introspecting a database using any of these features, you will get a warning from the Prisma CLI and a comment in your Prisma schema where the feature is being used. The warning will also contain a link to instructions on how to manually use the feature.
Fixes and improvements
Prisma Client
- Generator output
client
leads toError: ENOENT: no such file or directory, open '.../node_modules/@prisma/client/schema.prisma'
- DeprecationWarning: Implicit coercion to integer for exit code is deprecated
thread 'tokio-runtime-worker' panicked at 'internal error: entered unreachable code: No unsupported field should reach that path', query-engine\connectors\sql-query-connector\src\model_extensions\scalar_field.rs:70:44
- jsonProtocol:
in
argument of filter types does not accept scalars jsonProtocol
should report errors as nicely as before- Generated client with custom path containing string
client
:ENOENT: no such file or directory, open 'D:\<projectpath>\node_modules\.prisma\client\schema.prisma
- Can't find the schema when the project path contains the same name as the generated client folder
Prisma Migrate
- Build all glibc Linux binaries with CentOS 7
- Remove
Please create an issue ...
inMigrateEngine.ts
- Do not introspect exclusion constraints as Gist indexes
- Introspection warnings: move rendering from
DbPull.ts
to the engine - views: don't create local
views
folder on introspection if no views are found - RelationMode autocomplete uses incorrect casing
Language tools (e.g. VS Code)
Credits
Huge thanks to @RobertCraigie, @KhooHaoYit, @art049, @luxaritas, @mrazauskas for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, May 11 at 5 pm Berlin | 8 am San Francisco.
4.13.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Introspection warnings for unsupported features
The Prisma Schema Language (PSL) currently doesn't support all database features and functionality of our target databases. The PSL is an abstraction over SQL and will keep evolving to address gaps in our database feature matrix.
Before this release, prisma db pull
did not pick up the unsupported features in a database. It was easy to lose them when running prisma migrate dev
based on an existing Prisma schema if not included in a migration file using custom migrations.
To avoid this, we added introspection warnings that surface the existence of these features in your database and link to our documentation on how to manually work around the Prisma Schema with unsupported database features.
In this release, we added introspection warnings for the following features:
- Partitioned tables
- PostgreSQL Row Level Security
- Index sort order,
NULLS FIRST
/NULLS LAST
- CockroachDB row-level TTL
- Comments
- PostgreSQL deferred constraints
Prisma CLI will output warnings on introspection (prisma db pull
) and add comments to your Prisma schema. In the coming releases, we will expand this to many more features labeled with topic: database-functionality
on GitHub.
Improved support for Netlify and Vercel build process
Netlify and Vercel cache project dependencies during the build process and reuse that cache until dependencies change. While this helps speed up the build process, any postinstall
scripts of these dependencies will not be executed.
Prisma uses a postinstall
script in its package to automatically trigger the customized generation of Prisma Client for your Prisma Schema. When a dependency cache is used, that generation process is not triggered, and an outdated Prisma Client may be used in your application.
When you update your Prisma Schema but not your dependencies, Prisma Client will not be generated for the new schema. For example, columns you added recently to one of your models will not be present in the Prisma Client API - causing errors.
This problem can be avoided by:
- Adding a custom
postinstall
script in yourpackage.json
file - Manually adding a
prisma generate
step to the “Build” scripts of Vercel and Netlify.
We now added detection of this scenario and will prevent a build without an additional prisma generate
. This will ensure you're aware of the problem early and get guidance on how to fix this problem. You can read more on how to do this in our docs — Vercel caching troubleshooting, Netlify caching troubleshooting.
Better support for pnpm as a package manager
Before this release, Prisma only used npm scripts which would lead to undesirable behavior for a project using a different package manager such as pnpm and yarn. This release improves the detection of the package managers in your project by using ni
. If you're still running into this problem, let us know by creating a GitHub issue.
Segmentation fault and TLS connection error fix
In this release, we've fixed a TLS connection error segmentation fault. This mostly affected users running on Node.js 17 or later with OpenSSL 1.1 when using TLS to connect to their database.
JSON protocol Preview feature feedback
We have fixed multiple bugs for the jsonProtocol
Preview feature and are close to making it Generally Available. We are still looking for feedback about its usage to ensure it is ready and works as expected for everyone.
We would appreciate it if you would try it out, help us polish the feature, and move it to General Availability. Testing it requires little effort. You can test it using the following steps:
- Enabling the
jsonProtocol
Preview feature in your Prisma schema - Re-generating Prisma Client
- Running your application or tests to make sure everything works
We encourage you to leave your feedback in this GitHub issue or create a bug report if your run into any issues.
Fixes and improvements
Prisma Client
prisma generate
fails when using pnpm workspaces because it tries to install prisma dependencies with npm or yarn- Netlify deploy does not pick up changes to schema file
- Vercel: Schema only change does not invalidate build cache
- Serverless deployments: Just making a schema level change to a repository does not invalidate
node_modules
cache that contains generated Client - pnpm: Can not
prisma generate
when@prisma/client
is not installed in project - Segmentation fault crash when using prisma client when using PostgreSQL
- Docker with
pnpm install
hangs on@prisma/client
postinstall - Automatic installation of missing dependencies isn't compatible with pnpm
- Prisma generate throws dependency error karma-chai
- Postinstall script fails with PNPM workspaces due to npm ERR! Cannot read properties of null (reading 'matches')
- Debian 11 Node 19.3.0 segmentation fault
- Prisma client segfault on Ubuntu 22.04
- Segmentation Fault in Postgres
- Using Prisma with pnpm results in inability to call database related commands
- Prisma Connect Causes NodeJS to Close With Exit Code 0
- 99056 segmentation fault (core dumped) node --require esbuild-register prisma/seed.ts
- JSON protocol: sibling composites of the same type are rejected
Prisma Migrate
- prisma db pull adds redundant comments: "This table is a partition table ..."
- Render warning code 30 in cli (PG RLS)
Language tools (e.g. VS Code)
Credits
Huge thanks to @KhooHaoYit, @rintaun, @maxmartynov, @haneenmahd for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, April 20 at 5 pm Berlin | 8 am San Francisco.
4.12.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Introspection of Views SQL improvements (Preview)
The views
Preview feature significantly improved this release: prisma db pull
now reads the SQL query used to define a view and stores it in a .sql
file in a views
folder next to your Prisma schema.
Note: These
.sql
files are not yet used for creating or updating views during migrations yet. For now, we are only looking for feedback. Let us know if the introspected SQL files match the views picked up in your database and if the correct files were created in your filesystem.
We encourage you to leave feedback in this GitHub issue.
Improvements to JSON protocol (Early Preview)
In 4.11.0, we announced the jsonProtocol
Preview feature which had some rough edges. This release improves the Preview feature by providing polished and helpful error messages from Prisma Client when something goes wrong. Here is an example error message:
We would appreciate it if you would try it out to help us polish the feature and move it to General Availability. Testing it requires little effort. Please also leave any feedback in this issue, or open a new one if you want to report a bug.
Prisma Client startup performance
In this release, we've improved the startup performance of Prisma Client. We're keen on improving the performance of Prisma Client. If you experience any problems with the startup performance, be sure to report them so that we can look into them.
Open Telemetry tracing and logging for Prisma Client for Data Proxy
This release adds support for Open Telemetry tracing (via the tracing
Preview feature) and logging to Prisma Client for Data Proxy.
Fixes and improvements
Prisma Migrate
- Certain types of schema changes don't work with CockroachDB v22.2
- Completions: provided by engines break right at the start of a newline
db pull
fail with particular enum default value in column- Unable to reset CockroachDB for table with foreign key relationship on v22.2.
- Introspection of SQLite views
- Changing the Column Type to Enum on a model throws an error
- Introspection of the view definition statement
- MySQL multi-value index removes the primary key on introspection
Prisma Client
findUnique
used withPromise.all
returnsnull
- Missing
PrismaPromise
export after update from 4.9.0 to 4.11.0 - jsonProtocol doesn't query enum fields by default
- Prisma 4.11 breaks multilevel relation with compound primary keys (typings)
- 4.11.0:
Unique constraint failed on the fields
on query that worked in 4.10.1 jsonProtocol
Field/Enum is not included in the result of the findFirst/findMany function- Too many records are returned in 4.11.0 when using nested include and @unique field is null
- Objects with computed properties returned from an extended prisma client return true for any property name when calling hasOwn or hasOwnProperty on it
Language tools (e.g. VS Code)
Credits
Huge thanks to @KhooHaoYit, @rintaun, @ivan, @art049 for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, March 30 at 5 pm Berlin | 8 am San Francisco.
4.11.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
JSON protocol Early Preview
This release introduces an early Preview feature: JSON protocol.
During performance investigations and optimizations, we noticed that the existing implementation added a CPU and memory overhead that was especially noticeable for larger Prisma schemas. Therefore, we found an alternative way to express our queries without needing that overhead: JSON.
To try out the new protocol, enable the jsonProtocol
Preview feature in your Prisma schema:
generator client {
provider = "prisma-client-js"
previewFeatures = ["jsonProtocol"]
}
Regenerate Prisma Client to use the new JSON protocol.
For environments or situations where it is not viable to enable the Preview feature flag to your Prisma schema file, we also added an environment variable that you can use to force the use of the JSON Protocol Preview feature: PRISMA_ENGINE_PROTOCOL=json
.
Note: This is an early Preview feature with a significant limitation: Invalid input to Prisma Client will throw unpolished, internal errors that are less descriptive and user-friendly than our usual ones. We intend to improve these future releases. Using it with Data Proxy and Prisma Data Platform currently also leads to errors.
We expect using jsonProtocol
to improve Prisma Client's startup performance significantly. This will likely have a more significant impact on applications with larger Prisma schemas.
We would appreciate your feedback on this feature on the following particularly:
- Does using this preview feature introduce any regressions or problems in your application?
- If not, how does it influence the performance of your application? Can you share before and after measurements?
For feedback, please comment on the GitHub feedback issue.
Introspection support for MySQL, SQL Server, and CockroachDB views
You can now run prisma db pull
against your database to populate your Prisma schema with your views in MySQL, SQL Server, and CockroachDB.
To learn more, refer to our documentation on views introspection. Try it out and let us know your thoughts in this GitHub issue.
Prisma Client extensions improvements: raw query operations
This release adds support for extending top-level raw query operations.
const prisma = new PrismaClient().$extends({
query: {
// relational databases
$queryRaw({ args, query, operation }) {
// handle $queryRaw operation
return query(args)
},
$executeRaw({ args, query, operation }) {
// handle $executeRaw operation
return query(args)
},
$queryRawUnsafe({ args, query, operation }) {
// handle $queryRawUnsafe operation
return query(args)
},
$executeRawUnsafe({ args, query, operation }) {
// handle $executeRawUnsafe operation
return query(args)
},
// MongoDB
$runCommandRaw({ args, query, operation }) {
// handle $runCommandRaw operation
return query(args)
},
},
})
Webpack plugin for Next.js apps using Prisma in monorepo setups
If you've been using Prisma Client in a Next.js app in a monorepo setup, you might have seen this infamous error message:
Error: ENOENT: no such file or directory, open schema.prisma
We finally pinpointed the problem's source to the Next.js bundling step and opened an issue in the Next.js repository for Vercel to investigate and hopefully fix it.
In the meantime, we've created a workaround via a webpack plugin that makes sure your Prisma schema is copied to the correct location: @prisma/nextjs-monorepo-workaround-plugin
.
To use the plugin, first install it:
npm install -D @prisma/nextjs-monorepo-workaround-plugin
Import the plugin into your next.config.js
file and use it in config.plugins
:
const { PrismaPlugin } = require('@prisma/nextjs-monorepo-workaround-plugin')
module.exports = {
webpack: (config, { isServer }) => {
if (isServer) {
config.plugins = [...config.plugins, new PrismaPlugin()]
}
return config
},
}
For further information, refer to our documentation to learn how to use it and open an issue if it doesn't work as expected.
Fixes and improvements
Prisma Client
- Prisma hangs when javascript is minified
- Issue with prisma failing to locate schema file in monorepo
- NextJS try to open "schema.prisma" at wrong path.
- pnpm workspace + nextjs:
ENOENT: no such file or directory, open '...\.next\server\pages\api\schema.prisma'
- next.js ENOENT trying to open schema.prisma
- Error with custom output in NPM monorepo:
Error: ENOENT: no such file or directory, open 'schema.prisma'
- Error with custom output in Turborepo using Blitz.js: Error: ENOENT: no such file or directory, open '<...>/schema.prisma'
- Upsert fails on Postgres with list column.
- Error received when connecting items in an existing one-to-many relationship on MySQL
ENOENT
with custom output and ESM module in NPM monorepo (including Nextjs):no such file or directory, open /.../schema.prisma...
- Setting
ignoreEnvVarErrors: true
Node API QE causesdatasourceOverrides
to be ignored - PCE: Support query extensions for raw queries
Prisma Migrate
- sslaccept=accept_invalid_certs not working with mysql server 8.0.30
- Error 08S01 (1043) -> Bad Handshake. MySQL Connection with SSL certs
- Introspection of MySQL views
- Introspection of SQL Server views
- Introspection of CockroachDB views
db pull
: add new codes for introspection warnings for views in the CLI- Figure out where getDMMF is used for validation
- Error when
directUrl
isprisma://
connection string - 4.10.0, unexpected:
errorCode: 'P1012' PrismaClientInitializationError: error: Environment variable not found: DATABASE_URL.
- Validation output is now always colored, also in CI
- Prisma Client falsely validates
directUrl
env var value, leading to validation error (Affects PDP/Data Proxy and normal Engine) - Fix Postgres introspection of partition tables false positives on inherited tables
- Support openSUSE Tumbleweed
- Change
validate
to returnResult<(), JsError>
inWasm
module - (internal): add unit tests for path-specific libssl version parsing
Credits
Huge thanks to @KhooHaoYit, @rintaun, @ivan, @Mini256, @Lioness100, @yukukotani, @sandrewTx08, @fubhy, @zachtil, @unflxw, @Mosaab-Emam for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, March 2 at 5 pm Berlin | 8 am San Francisco.
4.10.1
Today, we are issuing the 4.10.1
patch release.
Fixes in Prisma Client
4.10.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Improved CLI support for connection poolers
When working with connection poolers such as the Prisma Data Proxy, Accelerate or pgBouncer, it is necessary to use a different URL to connect to the database when using Prisma Client and Prisma Migrate.
We're introducing a new datasource property directUrl
to improve this. When the directUrl
property is present, the Prisma CLI will use it to connect to the database for tasks such as introspection and migrations.
# .env
# Connection to Prisma Data Proxy. Used by Prisma Client.
DATABASE_URL="prisma://__HOST__/?api_key=__KEY__"
# Connection to the database. Used for migrations and introspection.
DIRECT_URL="postgresql://__USER__:__PASSWORD__@__HOST__:__PORT__/__DATABASE__"
// ./prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
To learn more, refer to our documentation.
Introspection support for PostgreSQL views
We introduced initial support for database views in 4.9.0 with the addition of the view
keyword. This release introduces introspection support for PostgreSQL views. You can run prisma db pull
against your database to populate your Prisma schema with your views.
To learn more, refer to our documentation on views introspection. Try it out and let us know your thoughts in this GitHub issue.
Improved introspection for unsupported database functionality & partitioned tables
Currently, the Prisma Schema Language(PSL) does not cover the full feature sets of different database providers. For the unsupported database functionality, Prisma provides offers escape hatches like raw queries or manual editing of the migration files.
While we work on adding support for missing database functionality, e.g. database views, some of it is not fully-supported and the escape hatches fail. Objects that use unsupported properties might not be caught during introspection and raw queries might not work. Re-introspection may sometimes remove the information from the schema file and the generated migrations may be invalid or re-generate the same SQL repeatedly.
We're therefore fixing the defects and supporting the unsupported database functionalities Prisma currently doesn't support. We created a list of these features in this GitHub issue we would like to improve.
This release improves introspection support for partitioned tables in PostgreSQL and MySQL. Previously, Prisma would pick up the partitions as model
s and miss the actual main table. Prisma will now pick up the main table as a model
, not the partitions.
If you're already using partitioned tables in your database, you can use prisma db pull
to update your Prisma schema. If you're already using Prisma and want to partition a table in your database, you can:
- Create a draft migration using
prisma migrate dev --create-only
- Update the draft migration with the SQL to partition the tables
- Re-run
prisma migrate dev
to apply the draft migration to your database
Try it out and let us know what you think. If you run into an issue, feel free to create a bug report.
Smaller engine size used in Prisma CLI
In 4.8.0, we decreased the size of the engines by ~50%, which significantly impacted Prisma Client, especially in serverless environments.
In this release, we've reduced the size of Prisma CLI by removing the Introspection and Formatter engines. The introspection functionality is now served by the Migration Engine. A cross-platform Wasm module has entirely replaced the Formatter Engine. This reduces the overall installation size for Prisma CLI.
Fixes and improvements
Prisma Client
- Precompiled engine files for
aarch64-unknown-linux-musl
target (Alpine Linux on ARM, e.g. M1) - Specify the generator to use for sharing schema files in different environments
- Implement
getDmmf
as Wasm module that could be used in Prisma CLI - Client in interactive transaction is not extended
- Deeply nested objects aren't typed when clientExtensions is enabled
- Typescript issue on nested queries with clientExtensions feature
Prisma
- Introspection can't get composite primary key for partitioned table
- db pull adds redundant comment about ignored table
- Remove
prisma-fmt
formatter binary - Diagnostics currently need to be manually written for Code Action tests
- OpenSSL on Node Alpine still not working after Prisma 4.8.0 on an ARM machine
- Improved error messages on system library detection
- Remove
introspection-engine
binary from CLI - [Stopgap] Introspect partitioned tables better: Only introspect main table in a valid way, ignore partitions
- Regression:
get-platform
error for non-amd64
Alpine introduced inprisma@4.9.0
prevents using custom Prisma engines - Introspection of PostgreSQL views
- internal: use original distro and distro family in warning messages
- Failed to detect linux distro +
Error: Unknown binaryTarget debian-openssl-0.0.x and no custom engine files were provided
after upgrading from 4.8.1 to 4.9.0
Language tools (e.g. VS Code)
- Add VS Code quick fix / code action to phase out
referentialIntegrity
in favor ofrelationMode
- Auto completion of
directUrl
Credits
Huge thanks to @rintaun, @ivan, @Mini256, @yukukotani, @sandrewTx08 for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, February 9 at 5 pm Berlin | 8 am San Francisco.
4.9.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Initial support for database views (Preview)
This release introduces a new keyword, view
, behind the views
Preview feature flag. You can manually add a view
to your Prisma schema, which is ignored when running migrations. This is a small step forward but should already be helpful to many of you depending on workarounds and shell scripts to work with views and Migrate.
Here is an example usage of views
:
generator client {
provider = "prisma-client-js"
previewFeatures = ["views"]
}
view UserInfo {
id Int @id
// from the User model
email String
name String
// from the Profile model
bio String
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
profile Profile?
}
model Profile {
id Int @id @default(autoincrement())
bio String
user User @relation(fields: [userId], references: [id])
userId Int @unique
}
To learn more, head to our documentation. Try it out and let us know your thoughts on this GitHub issue.
Multi-schema support for SQL Server (Preview)
We're thrilled to share that this release adds Preview support for multi-schema for SQL Server.
This release adds support for:
- Introspecting databases that organize objects in multiple database schemas
- Managing multi-schema database setups directly from Prisma schema
- Generating migrations that are database schema-aware with Prisma Migrate
- Querying across multiple database schemas with Prisma Client
If you already have a SQL Server database using multiple schemas, you can quickly get up and running and set up multiple schemas by:
- Enabling the Preview feature in the Prisma schema
- Defining the schemas in the
schemas
property in thedatasource
block - Introspecting your database using
prisma db pull
You can further evolve your database schema using the multi-schema Preview feature by using prisma migrate dev
.
For further details, refer to our documentation and let us know what you think in this GitHub issue.
Prisma Client Extensions improvements
In this release, we've made a number of improvements to the Prisma Client Extensions Preview feature:
-
Retrieving the current model name at runtime
You can now get the name of the current model at runtime usingPrisma.getExtensionContext(this).name
. You might use this to write out the model name to a log, to send the name to another service, or to branch your code based on the model. You can learn more about this in our docs. -
Improved type safety when defining custom model methods
Prisma Client now provides a set of type utilities that tap into input and output types. They are fully dynamic, which means they adapt to any given model and schema. You can use them to improve your custom model methods' auto-completion. This is especially useful in shared extensions. Learn more about this in our docs.
Let us know what you think in this GitHub issue and in case you run into any issues, please create a bug report.
Introspection and Migration engine improvements
In this release, we moved the Introspection Engine (responsible for prisma db pull
) which the Migration Engine will now serve. Previously, the Introspection Engine was stand-alone.
Let us know what you think in this GitHub issue and in case you run into any issues, please create a bug report.
MongoDB WriteConflict
bug fix
This version also comes with a notable bug fix: In our MongoDB provider, any queries that are returned with a WriteConflict
error Prisma now will retry the query, similar to how other MongoDB drivers and clients do.
Prisma plugin for JetBrains IDEs
If you are using a JetBrains IDE the team over at JetBrains recently released an official Prisma plugin in their Plugin Marketplace.
Thank you, @JetBrains, for working on this! Next to our VS Code extension for Prisma and our general language server, which works in many editors, most relevant editors should now be covered.
Accelerate (Early Access)
We’re thrilled to announce Early Access to Accelerate.
Accelerate is a global database cache. It is available in 280 locations and has built-in connection pooling for serverless apps. You can make your queries up to 1000 times faster on any Prisma-supported database, reducing your query response times.
Join the waiting list for Accelerate here.
Fixes and improvements
Prisma
- Feature Request: Jetbrains (IntelliJ IDEA, Webstorm) Plugin
- Misleading 'We need to reset the PostgreSQL database' when using PostgreSQL schemas
- Solve "P1012 Introspection failed" errors on Windows CI
- support NanoID
- Create CI worker without a proper
openssl
orlibc
installation to improve snapshot testing suite - db pull --url with an invalid url produces a misleading error message
- (re)-Introspection errors have a misleading error message
- multi-schema + introspection: rename models and enums to avoid name collisions
- multiSchema + introspection: add
--schemas
param to thedb pull
command - Cross schema reference with foreign key not working in 4.7.0+
- Handle missing
schemas
property different when cross schema references are detected (whenmultiSchema
preview feature is enabled) db pull
withmultiSchema
enabled andschemas
defined, outputspublic
in CLI message anyway- Remove DML dependency from MongoDB introspection
- I want short unique id. UUID, CUID are too long
- Completions: for
schemas
property indatasource
- Completions
@@schema
attribute - OS Support: improve SSL detection on
debian
distros multiSchema
: addschemas
property togetConfig
output- multiSchema:
migrate reset
with sqlserver does not delete second schema - Prisma 4.9.x (dev version) broke
openssl
detection for Linux distros besides Alpine and Debian-based distros, like RHEL - Wrong db pull warning with multiSchema preview feature, it says that
These enums were enriched with
@@mapinformation taken from the previous Prisma schema.
but the schema file datamodel is actually empty. - PSL: Recognize the
view
keyword - previewFeatures = ["multiSchema"] Error when doing db pull
- #17126 broke the
platform-serverless-vercel/vercel-cli
ecosystem tests - When
distro
is undefined, the output ofldconfig
is ignored because of thesed: -e expression #1, char 7: unknown option to
s'` silent error
Prisma Client
- Detect absense of openssl and inform the user about it
- prisma@4.7.1 - "RangeError: Maximum call stack size exceeded" when clientExtensions enabled
- Prisma 4.8 produces conflicting typescript types for custom many to many relations
- Using findUnique on 4.8.0 with nested
where
andinclude
produces an object that doesn't include entities you specify ininclude
- Error: Maximum call stack size exceeded is thrown after I used clientExtensions as preview feature.
- [MongoDB: Using ...
4.8.1
Today, we are issuing the 4.8.1
patch release.
Fix in Prisma Client
4.8.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Improved serverless experience — smaller engines size
In this release, we have decreased the size of our engine files by an average of 50%. The size of the Query Engine used on Debian, with OpenSSL 3.0.x, for example, went from 39MB to 14MB. We will also remove some smaller engines to decrease the total size in future versions.
Additionally, we have started optimizing how the Prisma schema is loaded in Prisma Client. You should notice a considerable improvement when executing the first query if you're working with a bigger schema with many models and relations.
We will continue investing in this direction in the next releases and further improve the experience with Prisma and serverless environments.
Multi-schema support for CockroachDB (Preview)
We're pleased to share that this release adds Preview support for multi-schema for CockroachDB. 🎉
This release adds support for:
- Introspecting databases that organize objects in multiple database schemas
- Managing multi-schema database setups directly from Prisma schema
- Generating migrations that are database schema-aware with Prisma Migrate
- Querying across multiple database schemas with Prisma Client
If you already have a CockroachDB database using multiple schemas, you can quickly get up and running set up multiple schemas by:
- Enabling the Preview feature in the Prisma schema
- Defining the schemas in the
schemas
property in thedatasource
block - Introspecting your database using
prisma db pull
You can further evolve your database schema using the multi-schema Preview feature by using prisma migrate dev
.
For further details, refer to our documentation and let us know what you think in this GitHub issue.
Improved OpenSSL 3.x support
Prisma now supports OpenSSL 3 builds for Linux Alpine on x86_64
architectures. This particularly impacts users running Prisma on node:alpine
and node:lts-alpine
Docker images. The images are based on an Alpine version that ships with OpenSSL 3.0.x, which isn’t compatible with OpenSSL 1.1.x (already supported by Prisma). You can read more details about it in this GitHub comment.
We also have rewritten our OpenSSL version detection logic, making it future-proof. We now expect Prisma to support systems running with any OpenSSL 3 minor versions out of the box.
Fixes and improvements
Prisma
- Migrate: @dbgenerated with @db.Time(0) keeps generating new migrations
- Error parsing attribute "@@index": The Gin index field type
Uuid
has no default operator class. - UTF-8 Error: index is not a char boundary
- Error in migration engine. Reason: entered unreachable code
- Regression in enum default value handling in 4.7.0
- Regression in relation field name deduplication
- multiSchema:
migrate reset
only resets first schema - Cross schema reference with foreign key not working in 4.7.0.
- Support SQL Server in
multiSchema
introspection migrate dev
does not detect drift between database schema and migration history formultiSchema
- Bad credentials when downloading using @prisma/fetch-engines
- multiSchema: migrate dev fails to apply cleanly to shadow database after custom migration renames table in secondary schema
Prisma Migrate
- Prisma db migration always altering my table contains mysql TIME data type inside of it
- Prisma migration fails with postgres
- Migrate Dev CMD Issue when using
multiSchema
preview feature with MySQL
Prisma Client
- Prisma 4.3.1 distribution is bundling a libquery_engine
- enum fields are missing in select's type when
clientExtensions
preview feature is used $extends
TS error: "Inferred type of this node exceeds the maximum length the compiler will serialize" with"declaration": true
intsconfig
- Regression bug: batched findUniqueOrThrow queries throw 'Field does not exist on enclosing type.'
- Prisma Client Extensions:
args
isundefined
- Support OpenSSL 3.0 for Alpine Linux
console.log
outputs incorrect value whenresult
extensions are used- 4.6.0 and newer does not let me spy using vitest.
- Investigate memory issues on Windows
- prisma@4.7.1 - "RangeError: Maximum call stack size exceeded" when clientExtensions enabled
- Unique constraint error when connecting an item in a 1-1 relation that is already connected
- Error when using "multiSchema" with custom database schema and implicit Many To Many relation
- binaries.prisma.sh not accessible via IPv6
- Nested disconnect fails with
extendedWhereUnique
on SQL
Language tools (e.g. VS Code)
- Auto completion suggests
@map
although already present - Update message for detecting both Stable and Insiders in workspace
- Update to use correct form of criteri(a/on)
- Extra
'
in optional arguments context
Prisma Engines
- Use correct forms of "criterion" (singular) and "criteria" (plural)
- Only use buildjet action runner where needed
- Bug:
@@schema
attribute should always be required whenschemas
is defined in the datasource
Credits
Huge thanks to @ivan, @Mini256, @cmd-johnson for helping!
Prisma Help Center (New)
We recently just launched our Help Center that you can use to find resources and get help from our support team for both the Prisma ORM and the Prisma Data Platform.
Check it out, and let us know what you think.
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, December 22 at 5 pm Berlin | 8 am San Francisco.