diff options
Diffstat (limited to 'internal/storage/db.go')
| -rw-r--r-- | internal/storage/db.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/storage/db.go b/internal/storage/db.go index d571c2e..8b563a6 100644 --- a/internal/storage/db.go +++ b/internal/storage/db.go @@ -154,6 +154,36 @@ func (s *DB) migrate() error { UNIQUE(role, version) )`, `CREATE INDEX IF NOT EXISTS idx_role_configs_role_status ON role_configs(role, status)`, + `CREATE TABLE IF NOT EXISTS epics ( + id TEXT PRIMARY KEY, + name TEXT NOT NULL, + description TEXT, + status TEXT NOT NULL DEFAULT 'OPEN', + discovery_source TEXT, + created_at DATETIME NOT NULL, + updated_at DATETIME NOT NULL + )`, + `CREATE TABLE IF NOT EXISTS stories ( + id TEXT PRIMARY KEY, + epic_id TEXT, + project_id TEXT, + name TEXT NOT NULL, + branch_name TEXT, + status TEXT NOT NULL, + discovery_source TEXT, + spec TEXT, + acceptance_criteria_json TEXT NOT NULL DEFAULT '[]', + validation_json TEXT, + deploy_config TEXT, + priority TEXT, + root_task_id TEXT, + created_at DATETIME NOT NULL, + updated_at DATETIME NOT NULL + )`, + `CREATE INDEX IF NOT EXISTS idx_epics_status ON epics(status)`, + `CREATE INDEX IF NOT EXISTS idx_stories_status ON stories(status)`, + `CREATE INDEX IF NOT EXISTS idx_stories_epic_id ON stories(epic_id)`, + `CREATE INDEX IF NOT EXISTS idx_stories_root_task_id ON stories(root_task_id)`, } for _, m := range migrations { if _, err := s.db.Exec(m); err != nil { |
