Defines the shape of data to be inserted into the database - can be used to validate API requests.
import { pgTable, text, integer } from 'drizzle-orm/pg-core';import { createInsertSchema } from 'drizzle-orm/valibot';import { parse } from 'valibot';const users = pgTable('users', { id: integer().generatedAlwaysAsIdentity().primaryKey(), name: text().notNull(), age: integer().notNull()});const userInsertSchema = createInsertSchema(users);const user = { name: 'John' };const parsed: { name: string, age: number } = parse(userInsertSchema, user); // Error: `age` is not definedconst user = { name: 'Jane', age: 30 };const parsed: { name: string, age: number } = parse(userInsertSchema, user); // Will parse successfullyawait db.insert(users).values(parsed);
Update schema
Defines the shape of data to be updated in the database - can be used to validate API requests.
import { pgTable, text, integer } from 'drizzle-orm/pg-core';import { createUpdateSchema } from 'drizzle-orm/valibot';import { parse } from 'valibot';const users = pgTable('users', { id: integer().generatedAlwaysAsIdentity().primaryKey(), name: text().notNull(), age: integer().notNull()});const userUpdateSchema = createUpdateSchema(users);const user = { age: 35 };const parsed: { name?: string | undefined, age?: number | undefined } = parse(userUpdateSchema, user); // Will parse successfullyawait db.update(users).set(parsed).where(eq(users.name, 'Jane'));
Refinements
Each create schema function accepts an additional optional parameter that you can used to extend, modify or completely overwite a field’s schema. Defining a callback function will extend or modify while providing a Valibot schema will overwrite it.
pg.bytea();// Schemacustom<Buffer>((v) => v instanceof Buffer)
You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.