DB Schema Change Skill
Checklist (MUST complete all)
- • Add
createdAt: text("created_at").notNull()to new tables - • Add
updatedAt: text("updated_at").notNull()to new tables - • Specify
onDeletefor all foreign keys (cascade/set null) - • Add index for frequently queried columns
- • Update
packages/db/src/schema/relations.tsif adding relations - • Run migration:
pnpm --filter @moneyforward-daily-action/db exec drizzle-kit generate - • Update
architecture/database-schema.mdwith new ERD
File Locations
- •Schema:
packages/db/src/schema/tables.ts - •Relations:
packages/db/src/schema/relations.ts - •Repositories:
packages/db/src/repositories/ - •Types:
packages/db/src/types.ts
Template
typescript
export const newTable = sqliteTable("new_table", {
id: integer("id").primaryKey({ autoIncrement: true }),
// ... your columns ...
createdAt: text("created_at").notNull(),
updatedAt: text("updated_at").notNull(),
});
Foreign Key Template
typescript
foreignKeyColumn: integer("foreign_key_column")
.notNull()
.references(() => parentTable.id, { onDelete: "cascade" }),
Index Template
typescript
export const myTable = sqliteTable(
"my_table",
{
// columns...
},
(table) => [index("my_table_column_idx").on(table.columnName)],
);