Today, we are excited to share the 2.9.0
stable release π
π Help us spread the word about Prisma by starring the repo βοΈ or tweeting about the release.
Improvements
In today's release, we have many bug fixes, increased test coverage, and improved error messages. The release also lays the foundations for the upcoming native database types support.
Errors thrown by Prisma Client include the version
With this release, error objects thrown by Prisma Client include the clientVersion
field which contains the version of Prisma Client. This is useful for debugging and creating issues.
Improved error message of prisma.$transaction
When you use prisma.$transaction
to group multiple calls into a single transaction, you need to pass an array of promises. Passing calls that have been awaited will now trigger a more helpful error:
Error: All elements of the array need to be Prisma Client promises. Hint: Please make sure you are not awaiting the Prisma client calls you intended to pass in the $transaction function.
Already existing preview features from previous releases
Just a quick reminder:
- In version
2.6.0
we introduced one preview feature, namelyatomicNumberOperations
. - In version
2.1.0
we introduced two preview features, namelyconnectOrCreate
andtransactionApi
.
In case they're useful for you, please give them a try and share your feedback! These features remain in preview in this release.
Issues closed with the release
prisma
- Switch to stable actions/stale once my PR is merged
We can't release, as the e2e tests are not passing for the ${tag} npm tag!
checks wrong npm tag for passing e2e tests when promoting a patch-dev to latest- Client seems to ignore Custom Binary Specification
- Tests / GitHub Actions check why cached download test is really slow
- Merge
PrismaQueryEngineError
intoPrismaClientUnknownRequestError
- Incorrect SQL generated for Json field { equals: null } filter
- Any Client error message should include the Client version
prisma -v
should include Client version as well (if installed)- $executeRaw used in a transaction throws: All elements of the array need to be Prisma Client promises.
- Test forks
- Code coverage
- Consolidate integration tests
- Include possible block names on a wrong keyword
- Optional field is required in @@unique and where clause and doesn't accept null
prisma introspect
overwrites a 1:1 mapping as 1:many- Replace ncc with esbuild in cli
- cli/introspect tests should exit
- Implement env var
FORCE_PANIC_INTROSPECTION_ENGINE
- DMMF Enum value types are invalid in 2.8.0
findFirst
should have return typeModel | null
- Unexpected field not found (FieldNotFound) error
- Non unique index should not appear in findOne where clause
prisma-client-js
- PostgreSQL
<table>WhereUniqueInput
including a column which isn't unique when composite primary key is used - Improve error message when object is passed to
prisma.$transaction
instead of a Prisma promise - Export
Sql
from @prisma/client - Prisma and node 12.19.0
language-tools
- Quick fixes for typos in block names
- Include reason of publish CI in every workflow and slack notification
- Autocomplete stops showing after the first character
- Changing the datasource name doesn't break the schema
- Can we check for the presence of the other extension and disable one or warn the user clearly
- extract the possible keywords from prisma-fmt error message
- Remove vsce from renovate ignore list
- VS Code extension not formatting for v2.8.1
- Get preview features from prisma-fmt
- Enum @default() autocomplete putting comments as options
studio
- Navigating from relations table triggered
Error: Could not find appropriate InputType for this field type. This should never happen.
- t.toUpperCase is not a function - prisma 2.8.0
- Studio doesn't let me save the newly created record
- Studio sometimes gets stuck on
Saving Changes
prisma-engines
- Supporting SQL Server in Introspection Engine
- Datamodel validator capability to prevent a foreign key on pointing to a nullable field
- Remove explicit attached name from generated SQL on SQLite
- Remove explicit database name from generated SQL on MySQL
- Schema Parser should validate supplied feature flags
default()
does not work in conjunction with native types- Postgres: serial native type and
@default(autoincrement())
must not be possible at the same time - Implement a
debugPanic
RPC in introspection engine - Add arguments to Mysql native type TINYINT
- Schema validation rejects fields with native type TinyInt and Scalar Type Boolen
Credits
Huge thanks to @rahul3v for helping!
Interested in providing feedback for the upcoming version of Prisma Migrate?
We are seeking users interested in trying out upcoming versions of Prisma Migrate. This will involve trying it out, validating functionality, and sharing feedback with us.
If you're interested in participating, fill out the following form, it won't take longer than a minute!
π Join the first Prisma Meetup online
We are excited to bring you the first Prisma Meetup which is going to happen entirely online, so you can dial in from around the globe!
The Meetup will be streamed on Youtube this Thursday: October 29th, 2020 at 6pm (CET, Berlin) | 10am (PDT, San Francisco)
We have amazing speakers on board for our first Meetup:
β Tammy Butow (Principal SRE @ Gremlin): Database Horror Stories
β HervΓ© Labas (VP of Product @ Prisma): The future of Prisma and its roadmap
β Tom Hutchinson (Head of Mobile @ Rapha): Prisma at Rapha
You can watch the event on YouTube here.