model Comment {
id Int @id @default(autoincrement())
cid String
bid String
author AppProfile @relation(fields: [bid], references: [bid])
comment String
created DateTime @default(now())
}
const results = await prisma.comment.create({
data: {
cid: req.body.cid,
comment: req.body.comment,
bid: appProfile.bid,
},
});
prisma:query INSERT INTO "public"."Comment" ("cid","bid","comment","created") VALUES ($1,$2,$3,$4) RETURNING "public"."Comment"."id"
prisma:query ROLLBACK
error - PrismaClientUnknownRequestError:
Invalid `prisma.comment.create()` invocation:
Error occurred during query execution:
ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Db, cause: Some(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState(E22003), message: "integer out of range for type int4", detail: None, hint: None, position: None, where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("eval.go"), line: Some(65), routine: Some("init") }) }) })
at RequestHandler.handleRequestError (/Users/jmalicke/Projects/muf/dev/repos/muf/bubbles-serverless/node_modules/@prisma/client/runtime/index.js:34314:13)
at RequestHandler.request (/Users/jmalicke/Projects/muf/dev/repos/muf/bubbles-serverless/node_modules/@prisma/client/runtime/index.js:34293:12)
at async PrismaClient._request (/Users/jmalicke/Projects/muf/dev/repos/muf/bubbles-serverless/node_modules/@prisma/client/runtime/index.js:35273:16)
at async comment (webpack-internal:///(api)/./pages/api/comment/index.ts:26:25) {
clientVersion: '4.6.1',
page: '/api/comment'
}
This is strange because the id column is an Int and should be default autoincrementing. The error message complains about int4. If I look in the database the only int4 column is the id field.
It seems your users are too active, if there is more than 2.147.483.647 comment ids, the Int id has reach it max value
You can convert it to BigInt like:
id BigInt @id @default(autoincrement())
But the best is maybe to use uuid like:
id String @id @unique @default(uuid())
Int max = 2.147.483.647
BigInt max = 9.223.372.036.854.775.807
UUID max = 3.4*10^38 or 340000000000000000000000000000000000000 (thanks to Belayer)