🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
🚀 Prisma Accelerate, our connection pool and global edge cache, is now Generally Available! Sign up to give it a try. 🚀
Highlights
Driver adapters improvements (Preview)
In version 5.4.0, we released driverAdapters
into Preview. The driverAdapters
feature enables Prisma Client to access your database using JavaScript or Serverless database drivers.
In this release, we fixed many bugs for the existing driver adapters. We appreciate all the community feedback that has helped us improve this feature!
PlanetScale serverless driver adapter improvements
This release also introduces a small breaking change to the @prisma/adapter-planetscale
package to improve its stability and performance. The serverless driver adapter will now use a connection pool instead of a single connection from PlanetScale’s serverless driver.
In case you’re using the @prisma/adapter-planetscale
, update your Prisma Client instance with the following:
-import { connect } from '@planetscale/database'
+import { Client } from '@planetscale/database'
import { PrismaPlanetScale } from '@prisma/adapter-planetscale'
import { PrismaClient } from '@prisma/client'
import { fetch as undiciFetch } from 'undici';
-const connection = connect({ url: connectionString, fetch: undiciFetch })
+const client = new Client({ url: connectionString, fetch: undiciFetch })
-const adapter = new PrismaPlanetScale(connection)
+const adapter = new PrismaPlanetScale(client)
const prisma = new PrismaClient({ adapter })
If you run into the following error: [TypeError]: PrismaPlanetScale must be initialized with an instance of Client.
, you can use the following snippet when defining your Prisma Client instance:
import { createRequire } from "node:module";
import { PrismaPlanetScale } from "@prisma/adapter-planetscale";
import { fetch as undiciFetch } from 'undici';
const require = createRequire(import.meta.url);
const { Client } = require("@planetscale/database");
const client = new Client({ url: process.env.DATABASE_URL , fetch: undiciFetch })
const adapter = new PrismaPlanetScale(client);
Request for feedback
We encourage you to try out the driver adapters and share your feedback to help us move it to General Availability in either of the following GitHub discussions:
Refer to our docs to learn more about driver adapters.
New prisma debug
command
This release introduces a new command: prisma debug
. The command provides debugging information such as environment variables that Prisma Client, Prisma Migrate, Prisma CLI, and Prisma Studio use. The command is also useful when creating a bug report as the information complements the output of the prisma -v
command.
You can learn more about the command in our docs.
Read replicas extension improvements
We also released version 0.3.0 of the @prisma/extension-read-replicas
package that contains the following improvements:
-
A new
$replica()
method that explicitly enables you to use a replica for your query.For example, by default, the
queryRaw
andexecuteRaw
methods are forwarded to the primary database, as they could try to write to the database. You can use the$replica()
method with either of the*Raw
methods to explicitly execute your query against a replica instead of your primary database. -
Validation for when there’s an empty list of replicas.
-
Webpack bundling fixes
We want to thank you, our community members, for your contributions! 🙏
You can find additional information on the changes in the extension’s release. You can learn more about the extension in the announcement blog post.
Package provenance
npm has introduced provenance statements to improve supply-chain security and transparency of packages. This allows developers to verify where and how packages are built.
Starting with the 5.6.0 release, all npm packages for Prisma ORM will be published with provenance statements. If you maintain a Prisma Client extension or generator, we encourage you to enable provenance statements when publishing to npm.
Fixes and improvements
Prisma Migrate
- Weird error message on
db push
with invalid connection string: Connection string redacted, weird grammar - Regression for MongoDB introspection in 5.4.0
- Inconsistent datetime column data importing to Turso
db pull --url=...
logs full connection string onP4001 The introspected database was empty
Prisma Client
prisma_pool_connections_idle
reports misleading number- Update and read issues with
@prisma/adapter-planetscale
- 5.5.0 regression: typescript error when trying to pass
PrismaPlanetScale
adapter to the constructor - 5.5.0/1:
Error: sha256 checksum of https://binaries.prisma.sh/all_commits/475c616176945d72f4330c92801f0c5e6398dc0f/windows/query_en gine.dll.node.gz (zipped) should be 748d039badd0919d022fff7d554b66b6937b79035861a6ae9a80c5a95eee76f5 but is b867ad335ee6f58c6a38f665dd641c95e6adff3061f92b7613c62cae1c3362bb
Prisma CLI
Credits
Huge thanks to @onichandame, @LucianBuzzo, @RobertCraigie, @fqazi, @KhooHaoYit, @alencardc, @Oreilles, @christianledgard, @skyzh, @alula, @luxaritas, @Nasfame, @lukahartwig, @steebchen, @icanipa for helping!
Company news
Prisma Accelerate is now Generally Available
We're excited to share that Prisma Accelerate is now Generally Available. Prisma Accelerate is a global database cache that's available in over 280 locations and provides scalable connection pooling for serverless and edge applications.
Learn more in the announcement blog post. Sign up and try out Prisma Accelerate here.
💼 We’re hiring!
If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.
We're hiring for an Engineering Manager: Prisma Data Platform.