From b324ab3e2f0f9f07eda061ad409132661633b87d Mon Sep 17 00:00:00 2001 From: Oliver Bryan <04oliverbryan@gmail.com> Date: Mon, 8 Dec 2025 00:04:42 +0000 Subject: [PATCH] Issue table --- src/db/schema.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/db/schema.ts b/src/db/schema.ts index 8e2a6f8..4b0ec4f 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -1,4 +1,4 @@ -import { integer, pgTable, varchar } from "drizzle-orm/pg-core"; +import { integer, pgTable, uniqueIndex, varchar } from "drizzle-orm/pg-core"; export const User = pgTable("User", { id: integer().primaryKey().generatedAlwaysAsIdentity(), @@ -14,3 +14,23 @@ export const Project = pgTable("Project", { .notNull() .references(() => User.id), }); + +export const Issue = pgTable( + "Issue", + { + id: integer().primaryKey().generatedAlwaysAsIdentity(), + projectId: integer() + .notNull() + .references(() => Project.id), + + number: integer("number").notNull(), + + title: varchar({ length: 256 }).notNull(), + description: varchar({ length: 2048 }).notNull(), + }, + (t) => [ + // ensures unique numbers per project + // you can have Issue 1 in PROJ and Issue 1 in TEST, but not two Issue 1s in PROJ + uniqueIndex("unique_project_issue_number").on(t.projectId, t.number), + ], +);