© 2026 Hedgehog Software, LLC
export const auth = betterAuth({ database: drizzleAdapter(db, { provider: "pg", // or "mysql", "sqlite" schema: authschema, }), // ... user: { modelName: "usersTable", additionalFields: { roles: { type: "string[]", defaultValue: ["guest"], input: false }, description: { type: "string" }, address: { type: "string" }, }, }, });
npx @better-auth/cli generate --config src/auth/auth.ts --output src/db/schema/auth.ts -y
import { pgTable, text, timestamp, boolean, integer, } from "drizzle-orm/pg-core"; export const usersTable = pgTable("users_table", { id: text("id").primaryKey(), name: text("name").notNull(), email: text("email").notNull().unique(), emailVerified: boolean("email_verified") .$defaultFn(() => false) .notNull(), image: text("image"), createdAt: timestamp("created_at") .$defaultFn(() => /* @__PURE__ */ new Date()) .notNull(), updatedAt: timestamp("updated_at") .$defaultFn(() => /* @__PURE__ */ new Date()) .notNull(), roles: text("roles").array().default(guest), // should be ["guest"] instead description: text("description"), address: text("address"), }); // ... other schema