Today, we are issuing the seventh Beta release: 2.0.0-beta.7
(short: beta.7
).
New Pagination
Prisma Client's pagination has been simplified a lot!
- Removed
first
, last
, before
, after
arguments.
- Added
cursor
and take
arguments.
skip
argument unchanged.
The take
argument replaces first
and last
.
Examples
first
prisma.user.findMany({
first: 10
})
// becomes
prisma.user.findMany({
take: 10
})
last
prisma.user.findMany({
last: 10
})
// becomes
prisma.user.findMany({
take: -10
})
before
prisma.user.findMany({
before: "someid"
first: 10
})
// becomes
prisma.user.findMany({
cursor: "someid"
take: -10
skip: 1
})
after
prisma.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
```
Auto restart on panic
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
Introspection now recognizes @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
Fixes and improvements
prisma
prisma-client-js
vscode
prisma-engines
Credits
Huge thanks to @Sytten, @thankwsx, @zachasme for helping!