Skip to main content

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