Drizzle ORM
Drizzle provides type-safe database access for Asset360 v3.
Schema Definition
Define schemas in worker/db/schema/:
import { sqliteTable, integer, text } from "drizzle-orm/sqlite-core";
export const fundsTable = sqliteTable("funds", {
id: integer("id").primaryKey({ autoIncrement: true }),
name: text("name").notNull(),
code: text("code").notNull().unique(),
});
Querying
import { eq } from 'drizzle-orm';
// Select
const funds = await db.select().from(fundsTable).where(eq(fundsTable.id, 1));
// Insert
const [fund] = await db.insert(fundsTable).values({...}).returning();
// Update
await db.update(fundsTable).set({...}).where(eq(fundsTable.id, 1));
// Delete
await db.delete(fundsTable).where(eq(fundsTable.id, 1));
Generating Migrations
After schema changes:
pnpm drizzle-kit generate