Auto Crud

Install Drizzle ORM

For detailed steps, refer to https://hub.nuxt.com/docs/recipes/drizzle.

Install Drizzle

bun add drizzle-orm
bun add --dev drizzle-kit

Add the Drizzle configuration file to the project root.

// drizzle.config.ts
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  dialect: "sqlite",
  schema: "./server/database/schema.ts",
  out: "./server/database/migrations",
});

Add the following utility function to use Drizzle conveniently:

// server/utils/drizzle.ts
import { drizzle } from "drizzle-orm/d1";
export { sql, eq, and, or } from "drizzle-orm";

import * as schema from "../database/schema";

export const tables = schema;

export function useDrizzle() {
  return drizzle(hubDatabase(), { schema });
}

export type User = typeof schema.users.$inferSelect;

Add a Convenience Script

To avoid typing the lengthy bun run drizzle-kit generate command every time, add this script to your package.json:

// package.json
{
  "scripts": {
    "db:generate": "drizzle-kit generate"
  }
}

Later, you can generate schemas by simply running bun run db:generate.