NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3138 most downloaded on npm
This package is intended for Prisma's internal use
Last release today
09 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
9596 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Today we release the first patch release 2.0.1. This is the first time that we run our new patch process! And it looks like everything went well 🤗.
Today we release the first patch release 2.0.1.
This is the first time that we run our new patch process! And it looks like everything went well 🤗.
prisma introspect got improved so there are fewer false positives that tell users their database is Prisma 1.Nothing published for this version
Nothing published for this version
Nothing published for this version
🎉 Today, we are launching Prisma 2.0 for General Availability! Read the announcement to learn more.
🎉 Today, we are launching Prisma 2.0 for General Availability! Read the announcement to learn more.
Today's General Availability release features Prisma Client, a type-safe and auto-generated query builder for your database. Thanks to introspection, Prisma Client can be used for existing databases as well.
Note: Prisma Migrate and Prisma Studio are not part of today's release. They're still experimental.
The easiest way to get started is by following the Quickstart (5 min). It is based on a SQLite demo database and doesn't require any setup!
You can also connect Prisma to your own PostgreSQL or MySQL database, either in an existing project or when starting from scratch.
As always, we very much appreciate your feedback! Please don't hesitate to reach out here on GitHub or on Slack if you have any questions, thoughts, or any other kind of feedback about Prisma! 🙌
If you're currently using Prisma 1 and want to upgrade to the new version, you can start by learning about the upgrade process in the docs: How to upgrade 📚
If you have any questions or feedback about the upgrade process, please create a GitHub issue in our new feedback repo. You can also share your personal feedback path with us and we'll try to figure out the best way to upgrade with you!
We're also planning upgrade webinars, where we're demoing the upgrade process for different scenarios (e.g. using prisma-binding, Prisma Client, Nexus, ...). The webinars are currently planned for July, we'll announce the dates soon!
We're hosting another edition of Prisma Day this year and are going fully remote. Join us online for hands-on workshops on June 25th and great talks on June 26th. Some of the speakers include GitHub co-founder Tom Preston-Werner, Netlify CEO Mathias Biilmann Christensen and lots of Prisma folks to tell you the latest about Prisma 2.0.
Nothing published for this version
Today, we are issuing the twenty-fifth Preview release: 2.0.0-preview025 (short: preview025).
Today, we are issuing the twenty-fifth Preview release: 2.0.0-preview025 (short: preview025).
prisma2 npm packageWith this release, we're renaming the Prisma 2 CLI npm package from prisma2 to @prisma/cli. Note that you can still invoke the CLI using the prisma2 command!
To upgrade, you first should uninstall the current prisma2 version and then install the @prisma/cli package.
The local installation is generally preferred since it prevents conflicting versions of the same package.
# Uninstall current `prisma2` CLI (`preview024` or earlier)
npm uninstall prisma2
# Install new `prisma2` CLI via `@prisma/cli` npm package
npm install @prisma/cli --save-dev
# Invoke the CLI via `npx`
npx prisma2
# Uninstall current `prisma2` CLI (`preview024` or earlier)
npm uninstall -g prisma2
# Install new `prisma2` CLI via `@prisma/cli` npm package
npm install -g @prisma/cli
# Invoke the CLI via `npx`
npx prisma2
prisma2 --version output changederrorFormat in the PrismaClient constructor now is colorlessprisma2datasource block fail with Error: Schema parsing error: Unexpected token. Expected one of: End of block ("}"), alphanumeric identifiererror: Argument 'value' is missing in attribute '@default'.Error occurred during query validation & transformation:PANIC: Could not parse stored DateTime string: 2009-01-01 00:00:00: ParseError(Invalid) on findMany()thread 'main' panicked at 'Expected ID field ... to be present on the model'@default doesnt work for enumprisma-client-jspretty to colorlessError parsing GraphQL query: query parse error: Parse error at 4:3 Unexpected}[Punctuator]ExpectedName from findMany({}) after introspectionFloat sometimes results on sightly different value written to Postgresundefined from findMany({}) after introspectionprisma-enginesSELECT 1 before every queryIN queries into smaller batchesdbGenerated() for Default valuesmigrateToday, we are issuing the twenty-fourth Preview release: 2.0.0-preview024 (short: preview024).
Today, we are issuing the twenty-fourth Preview release: 2.0.0-preview024 (short: preview024).
This release contains major improvements for Prisma Client. It now supports Windows Azure functions. In addition to that, the generated Prisma Client code inside your node_modules directory now is a lot smaller.
Another improvement is a better debugging experience. When setting the DEBUG environment variable (e.g. with export DEBUG="*"), the logging output now contains the names of Prisma Client API calls.
In this release, it's now possible to use relation fields of Prisma models as IDs. In "database-speak", this means that you can now have both a primary key and a foreign key constraint on the same column.
For example, a Movie could always be identified by its Director:
model Movie {
director Director @id
title String
}
model Director {
id Int @id @default(@autoincrement())
name String
}
This is what the corresponding SQL (in SQLite dialect) looks like:
CREATE TABLE "Movie" (
"director" INTEGER NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("director"),
FOREIGN KEY ("director") REFERENCES "Director"("id")
);
CREATE TABLE "Director" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT NOT NULL DEFAULT ''
);
<details><summary>Expand to view an example for creating Movies and Directors in Prisma Client</summary>
Nested write to create Movie with Director:
// Run inside `async` function
const movie = await prisma.movie.create({
data: {
title: "Hello World",
director: {
create: {
name: "Alice"
}
}
},
})
Nested write to create Director with Movie:
// Run inside `async` function
const director = await prisma.director.create({
data: {
name: "Bob",
movies: {
create: [{
title: "Hello World"
}]
}
},
})
</details>
You can also create a relation to a multi-field ID:
model Movie {
director Director @id @map(["firstName", "lastName"])
title String
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
Note that in this case, the Movie table in the underlying database will actually have two physical columns called firstName and lastName. These are referencing the respective firstName and lastName column on the Director table.
Here is what the above models correspond to in SQL:
CREATE TABLE "Movie" (
"firstName" TEXT NOT NULL ,
"lastName" TEXT NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("firstName","lastName"),
FOREIGN KEY ("firstName","lastName") REFERENCES "Director"("firstName","lastName")
);
CREATE TABLE "Director" (
"firstName" TEXT NOT NULL DEFAULT '' ,
"lastName" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("firstName","lastName")
);
In many cases, it might make sense to name the columns on Movie differently. For example, they could be called directorFirstName and directorLastName. This can be achieved via adding the @map attribute to the field:
model Movie {
director Director @id @map(["directorFirstName", "directorLastName"]) @relation(references: [firstName, lastName])
title String
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
Note that in this case you could also omit the @relation attribute, the result would be the same:
model Movie {
director Director @id @map(["directorFirstName", "directorLastName"])
title String
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
In this case, the field names in @map on Movie get matched with the field names in @@id on Director.
Both cases correspond to the following SQL:
CREATE TABLE "Movie" (
"directorFirstName" TEXT NOT NULL ,
"directorLastName" TEXT NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("directorFirstName","directorLastName"),
FOREIGN KEY ("directorFirstName","directorLastName") REFERENCES "Director"("firstName","lastName")
);
CREATE TABLE "Director" (
"firstName" TEXT NOT NULL DEFAULT '' ,
"lastName" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("firstName","lastName")
);
<details><summary>Expand to view an example for creating Movies and Directors in Prisma Client</summary>
Nested write to create Movie with Director:
// Run inside `async` function
const movie = await prisma.movie.create({
data: {
title: 'Hello World',
director: {
create: {
firstName: 'Alice',
lastName: 'Allen',
},
},
},
})
Nested write to create Director with Movie:
// Run inside `async` function
const director = await prisma.director.create({
data: {
firstName: 'Bob',
lastName: 'Nolan',
movies: {
create: [
{
title: 'Hello World',
},
],
},
},
})
</details>
You can also create a multi-field ID on a model that contains a relation field:
model Movie {
director Director
title String
@@id([director, title])
}
model Director {
id String @id @default(cuid())
name String
}
This corresponds to the following SQL:
CREATE TABLE "Movie" (
"director" TEXT NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("director","title"),
FOREIGN KEY ("director") REFERENCES "Director"("id")
);
CREATE TABLE "Director" (
"id" TEXT NOT NULL ,
"name" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("id")
);
<details><summary>Expand to view an example for creating Movies and Directors in Prisma Client</summary>
Nested write to create Movie with Director:
// Run inside `async` function
const movie = await prisma.movie.create({
data: {
title: 'Hello World',
director: {
create: {
name: 'Alice',
},
},
},
})
Nested write to create Director with Movie:
// Run inside `async` function
const director = await prisma.director.create({
data: {
name: 'Bob',
movies: {
create: [
{
title: 'Hello World 2',
},
],
},
},
})
</details>
You can also define a multi-field ID on a model which contains a relation field that targets a model with a multi-field ID:
model Movie {
director Director
title String
@@id([director, title])
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
This is what the above code translates to in SQL:
CREATE TABLE "Movie" (
"director_firstName" TEXT NOT NULL ,
"director_lastName" TEXT NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("director_firstName","director_lastName","title"),
FOREIGN KEY ("director_firstName","director_lastName") REFERENCES "Director"("firstName","lastName")
);
CREATE TABLE "Director" (
"firstName" TEXT NOT NULL DEFAULT '' ,
"lastName" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("firstName","lastName")
);
Similar to the case before, you can also give names to the added columns on Movie by using the @map attributed:
model Movie {
director Director @map(["directorFirstName", "directorLastName"]) @relation(references: [firstName, lastName])
title String
@@id([director, title])
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
And as before you can also omit the @relation attribute in this scenario:
model Movie {
director Director @map(["directorFirstName", "directorLastName"])
title String
@@id([director, title])
}
model Director {
firstName String
lastName String
@@id([firstName, lastName])
}
In both cases, the models correspond to the following tables:
CREATE TABLE "Movie" (
"directorFirstName" TEXT NOT NULL ,
"directorLastName" TEXT NOT NULL ,
"title" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("directorFirstName","directorLastName","title"),
FOREIGN KEY ("directorFirstName","directorLastName") REFERENCES "Director"("firstName","lastName")
);
CREATE TABLE "Director" (
"firstName" TEXT NOT NULL DEFAULT '' ,
"lastName" TEXT NOT NULL DEFAULT '' ,
PRIMARY KEY ("firstName","lastName")
);
<details><summary>Expand to view an example for creating Movies and Directors in Prisma Client</summary>
Nested write to create Movie with Director:
// Run inside `async` function
const movie = await prisma.movie.create({
data: {
title: 'Hello World',
director: {
create: {
firstName: 'Alice',
lastName: 'Allen',
},
},
},
})
Nested write to create Director with Movie:
// Run inside `async` function
const director = await prisma.director.create({
data: {
firstName: 'Bob',
lastName: 'Nolan',
movies: {
create: [
{
title: 'Hello World',
},
],
},
},
})
</details>
MODELGetSelectPayload and MODELGetIncludePayload have been merged into MODELGetPayload. More info here.
prisma2@default include type information@prisma/sdk version in lockstep with prisma2introspect for SQLite returns id as String when it should be IntDEBUG env var)migrateprisma-client-jsprisma-enginescargo test commandint as Integer on SqliteToday, we are issuing the ninth Beta release: 2.0.0-beta.9 (short: beta.9).
Today, we are issuing the ninth Beta release: 2.0.0-beta.9 (short: beta.9).
ORWe used to allow this syntax:
const orIncorrect = await prisma.post.findMany({
orderBy: {
id: 'asc'
},
where: {
OR: {
title: {
equals: "Prisma makes databases easy"
},
authorId: {
equals: 2
}
}
}
});
However, the thing that we want is this:
const orCorrect = await prisma.post.findMany({
orderBy: {
id: 'asc'
},
where: {
OR: [{
title: {
equals: "Prisma makes databases easy"
},
}, {
authorId: {
equals: 2
}
}]
}
})
So only the array syntax makes sense, therefore we also only allow that from now on.
prismaprisma-client-jsvscodeprisma-enginesuniqueIndexes to Model in DMMFdefault for Field in DMMF Huge thanks to @Sytten for helping!
Today, we are issuing the eighth Beta release: 2.0.0-beta.8 (short: beta.8).
Today, we are issuing the eighth Beta release: 2.0.0-beta.8 (short: beta.8).
.raw into .queryRaw and .executeRawWhen dealing with raw SQL queries, there are two things we care about - the "return payload", which is being calculated by the SELECT statement we use and the number of affected rows - if we for example do an UPDATE query.
Until now, Prisma Client decided under the hood with a heuristic, when to return the number of affected rows and when to return the result data.
This heuristic broke if you wanted the opposite of what the heuristic returned.
That means that the decision has to be made by the developer using Prisma Client instead.
Therefore, we remove the raw command and replace it with executeRaw and queryRaw.
So what does return what?
executeRaw returns the number of affected rowsqueryRaw returns the result dataThe heuristic used to return the data for SELECT statements. So if you upgrade to Beta 8, you need to use queryRaw for your SELECT statements and executeRaw for all SQL queries, which mutate data.
The rule of thumb is: Do not use executeRaw for queries that return rows.
In Postgres, it will work to use executeRaw('SELECT 1), however, SQLite will not allow that.
prismanpx prisma generate issue if working directory contains spacesstring.prisma-client-jsHuge thanks to @Sytten, @merelinguist for helping!
Today, we are issuing the seventh Beta release: 2.0.0-beta.7 (short: beta.7).
Today, we are issuing the seventh Beta release: 2.0.0-beta.7 (short: beta.7).
Prisma Client's pagination has been simplified a lot!
first, last, before, after arguments.cursor and take arguments.skip argument unchanged.The take argument replaces first and last.
firstprisma.user.findMany({
first: 10
})
// becomes
prisma.user.findMany({
take: 10
})
lastprisma.user.findMany({
last: 10
})
// becomes
prisma.user.findMany({
take: -10
})
beforeprisma.user.findMany({
before: "someid"
first: 10
})
// becomes
prisma.user.findMany({
cursor: "someid"
take: -10
skip: 1
})
afterprisma.user.findMany({
after: "someid"
first: 10
})
// becomes
prisma.user.findMany({
cursor: "someid"
take: 10
skip: 1
})
The record specified with cursor is now included in the results, making skip: 1 necessary if you want to preserve the previous before / after semantics.
This diagram illustrates how the pagination works:
cursor: 5
skip: 0 or undefined
│
│
│
▼
┌───┐┌───┐┌───┐┏━━━┓┏━━━┓┌───┐┌───┐┌───┐┌───┐┌───┐
│ 1 ││ 2 ││ 3 │┃ 4 ┃┃ 5 ┃│ 6 ││ 7 ││ 8 ││ 9 ││10 │
└───┘└───┘└───┘┗━━━┛┗━━━┛└───┘└───┘└───┘└───┘└───┘
◀────────
take: -2
cursor: 5
skip: 1
│
│
│
▼
┌───┐┌───┐┏━━━┓┏━━━┓┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
│ 1 ││ 2 │┃ 3 ┃┃ 4 ┃│ 5 ││ 6 ││ 7 ││ 8 ││ 9 ││10 │
└───┘└───┘┗━━━┛┗━━━┛└───┘└───┘└───┘└───┘└───┘└───┘
◀────────
take: -2
cursor: 5
skip: 2
│
│
│
▼
┌───┐┏━━━┓┏━━━┓┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐
│ 1 │┃ 2 ┃┃ 3 ┃│ 4 ││ 5 ││ 6 ││ 7 ││ 8 ││ 9 ││10 │
└───┘┗━━━┛┗━━━┛└───┘└───┘└───┘└───┘└───┘└───┘└───┘
◀────────
take: -2
cursor: 5
skip: 0 or undefined
│
│
│
▼
┌───┐┌───┐┌───┐┌───┐┏━━━┓┏━━━┓┏━━━┓┌───┐┌───┐┌───┐
│ 1 ││ 2 ││ 3 ││ 4 │┃ 5 ┃┃ 6 ┃┃ 7 ┃│ 8 ││ 9 ││10 │
└───┘└───┘└───┘└───┘┗━━━┛┗━━━┛┗━━━┛└───┘└───┘└───┘
──────────▶
take: 3
cursor: 5
skip: 1
│
│
│
▼
┌───┐┌───┐┌───┐┌───┐┌───┐┏━━━┓┏━━━┓┏━━━┓┌───┐┌───┐
│ 1 ││ 2 ││ 3 ││ 4 ││ 5 │┃ 6 ┃┃ 7 ┃┃ 8 ┃│ 9 ││10 │
└───┘└───┘└───┘└───┘└───┘┗━━━┛┗━━━┛┗━━━┛└───┘└───┘
──────────▶
take: 3
cursor: 5
skip: 2
│
│
│
▼
┌───┐┌───┐┌───┐┌───┐┌───┐┌───┐┏━━━┓┏━━━┓┏━━━┓┌───┐
│ 1 ││ 2 ││ 3 ││ 4 ││ 5 ││ 6 │┃ 7 ┃┃ 8 ┃┃ 9 ┃│10 │
└───┘└───┘└───┘└───┘└───┘└───┘┗━━━┛┗━━━┛┗━━━┛└───┘
──────────▶
take: 3
The Query Engine now automatically restarts with an exponential backoff with jitter, if it exits for some reason, for example in the case of a panic. That helps a lot to make Prisma Client more resilient in production! https://github.com/prisma/prisma/issues/2100
@default(cuid / uuid)If you introspect a Prisma 1 schema, the introspection now correctly recognizes cuid or uuid usage
https://github.com/prisma/prisma/issues/2499
prismagenerate does not work in folders with spacesfindMany with a select argument errors out with models with self-relations (sometimes)selected in queriesfindMany fails to select an enum list & a relation scalar at the same timeprisma-client-jsvscode@default() puts curcor after ) instead of inside ()@unique @uniqueprisma-enginesHuge thanks to @Sytten, @thankwsx, @zachasme for helping!
…(forceTransactions from the PrismaClient is now deprecated and will be removed in an upcoming release)
Today, we are issuing the sixth Beta release: 2.0.0-beta.6 (short: beta.6).
raw queries with Prisma ClientThanks to @zachasme and @Sytten, the prisma.raw command became more powerful in https://github.com/prisma/prisma/pull/2311. There are two changes we introduce for raw:
sql-template-tag helpersPrisma Client's raw mode utilizes the sql-template-tag library. In order to construct raw SQL queries programmatically, Prisma Client now exposes a few helper functions:
import { sql, empty, join, raw, PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
const rawQueryTemplateFromSqlTemplate = await prisma.raw(
sql`
SELECT ${join([raw('email'), raw('id'), raw('name')])}
FROM ${raw('User')}
${sql`WHERE name = ${'Alice'}`}
${empty}
`
)
Sometimes, a static template string is not enough. Then constructing a string dynamically is the right choice. For this situation, we added support for arbitrary positional parameters:
const result = await prisma.raw(
'SELECT * FROM User WHERE id = $1 OR email = $2;',
1,
'e@ma.il'
)
?pgbouncer=true parameter (forceTransactions from the PrismaClient is now deprecated and will be removed in an upcoming release)prisma formatprismaintrospect success message&sslcert=server-ca.pem in PostgreSQL connection url throw Error opening a TLS connection: One or more parameters passed to a function were not valid.prisma format will move it out of the modelPrisma Client does not workprisma-client-jsforceTransactions / pgBouncervscodeprisma-enginesHuge thanks to @Sytten, @thankwsx, @zachasme for helping!
Today, we are issuing the fifth Beta release: 2.0.0-beta.5 (short: beta.5).
Today, we are issuing the fifth Beta release: 2.0.0-beta.5 (short: beta.5).
From now on, you don't need to build your own binaries for Alpine Linux and all musl-based distros anymore. They're shipped by default with the Prisma CLI and Prisma Client.
The new Node v14 is from now on fully supported with the Prisma CLI and Prisma Client.
You can now use the new Json type that was introduced in the last release also in Prisma Client.
prismaprisma-client-jsmigratevscodeprisma-enginesHuge thanks to @Sytten for helping!
Today, we are issuing the fourth Beta release: 2.0.0-beta.4 (short: beta.4).
Today, we are issuing the fourth Beta release: 2.0.0-beta.4 (short: beta.4).
Prisma now supports working with JSON data with the new Json type in the Prisma data model.
Here's an overview of how it works with different Prisma tools/workflows:
The prisma introspect command maps the following column types to Json:
JSON and JSONBJSONprisma migrate uses the following data type when creating a column for a field of type Json:
JSONBJSONFields of type Json will be exposed as plain JavaScript objects in the Prisma Client API.
prisma formatFrom now on, you can run prisma format in your project, to make your schema.prisma pretty without the VSCode extension 💅
Prisma now supports Yarn workspaces 🎉
.prisma folderThe generation of Prisma Client into node_modules sometimes caused problems with package managers (e.g. Yarn) which would occasionally delete the generated code.
In order to make the generation more robust, Prisma Client is now generated into a folder called node_modules/.prisma. Because of the leading dot in the folder name, package managers do not touch the folder any more. This results in the following folder structure:
node_modules/
↪ .prisma
↪ client
↪ schema.prisma
↪ index.js
↪ index.d.ts
↪ query-engine-darwin
↪ @prisma/client (imports the generated code from `.prisma`)
Note that the generated Prisma Client code in .prisma is now imported into @prisma/client which means there is no change for how you import and use Prisma Client in your code! You can still import Prisma Client as before with:
import { PrismaClient } from '@prisma/client'
The prisma studio --experimental command now accepts a --browser option to let you choose your preferred browser for Prisma Studio, e.g.:
prisma studio --browser "Google Chrome" --experimental
Here's an overview of the browser names you can use per platform (note that double quotes are required when the browser name contains space and the right capitalization is required too):
| OS | Browser | Argument for --browser |
|---|---|---|
| Mac OS | Chrome | "Google Chrome" |
| Firefox | "Firefox" |
|
| Firefox (Developer) | "Firefox Developer Edition" |
|
| Safari | "Safari" |
|
| Windows | Chrome | "Google Chrome" |
| Firefox | "Firefox" |
|
| Firefox (Developer) | "Firefox Developer Edition" |
|
| Brave | "Brave" |
|
| Linux | Chrome | "google-chrome" |
| Firefox | "firefox" |
|
| Firefox (Developer) | "firefox-developer-edition" |
|
| Brave | "brave" |
prismaRUST_BACKTRACE=full for a verbose backtrace.introspect fails on SQLiteprisma-client-jsnull for a nullable relation results in errornullmigratevscodealpha version of extensionHuge thanks to @Sytten for helping!
The prisma2 command is now deprecated in favor of prisma
Today, we are issuing the third Beta release: 2.0.0-beta.3 (short: beta.3).
prisma2 command is now deprecated in favor of prismaprismareferences must refer to a unique criteria in the related model pages_language. But it is referencing the following fields that are not a unique criteria: page_id"MA==@relation annotation's field attribute should not be able to accept scalar listsprisma introspect --print?prisma2 executablegenerate does not work in folders with spacesprisma-client-jsmigrate--preview is ignored when doing prisma migrate down --preview --experimentalvscodeToday, we are issuing the second Beta release: 2.0.0-beta.2 (short: beta.2).
Today, we are issuing the second Beta release: 2.0.0-beta.2 (short: beta.2).
We want to give a huge shoutout to @Sytten who helped us fix some issues in the Rust codebase 🎊
count queries in Prisma ClientIn previous versions of Prisma Client, it was not possible to provide any filter arguments when using .count. With this release, you can provide the same filter arguments from findMany:
const numberOfUsersCalledBob = await prisma.user.count({ where: { name: 'Bob' }})
With this release, we were able to fix a lot of nasty bugs like some schema validation issues in VS Code (#1989 and #1970) as well as a Prisma Migrate bug with 1-n self-relations.
prisma.env file is used - Closes #1155version commandprisma2 generate --watch exits when no models are defined in schema.prismaTeams uses the scalar fields tmID. The arity of those fields must be the same. The relation field is required but the scalar fields are optional.prisma2 generate --watch exits when no models are defined in schema.prisma.env file is usedprisma-client-jscreateprisma-enginesmigrateYour coding agent can read these notes before it upgrades. Set up the MCP server →