···23722372 return err
23732373 })
2374237423752375+ orm.RunMigration(conn, logger, "add-issue-pull-state-tables", func(tx *sql.Tx) error {
23762376+ _, err := tx.Exec(`
23772377+ create table if not exists issue_states (
23782378+ id integer primary key autoincrement,
23792379+ did text not null,
23802380+ rkey text not null,
23812381+ at_uri text generated always as ('at://' || did || '/' || 'sh.tangled.repo.issue.state' || '/' || rkey) stored,
23822382+23832383+ subject text not null,
23842384+ state text not null check (state in ('open', 'closed')),
23852385+ created_micros integer not null,
23862386+23872387+ unique(did, rkey),
23882388+ foreign key (subject) references issues(at_uri) on delete cascade
23892389+ );
23902390+ create index if not exists idx_issue_states_subject on issue_states(subject);
23912391+23922392+ create table if not exists pull_states (
23932393+ id integer primary key autoincrement,
23942394+ did text not null,
23952395+ rkey text not null,
23962396+ at_uri text generated always as ('at://' || did || '/' || 'sh.tangled.repo.pull.status' || '/' || rkey) stored,
23972397+23982398+ subject text not null,
23992399+ status text not null check (status in ('open', 'closed', 'merged')),
24002400+ created_micros integer not null,
24012401+24022402+ unique(did, rkey),
24032403+ foreign key (subject) references pulls(at_uri) on delete cascade
24042404+ );
24052405+ create index if not exists idx_pull_states_subject on pull_states(subject);
24062406+24072407+ create table if not exists pending_state_records (
24082408+ id integer primary key autoincrement,
24092409+ did text not null,
24102410+ rkey text not null,
24112411+ nsid text not null,
24122412+24132413+ subject text not null,
24142414+ record blob not null,
24152415+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
24162416+24172417+ unique(did, rkey, nsid)
24182418+ );
24192419+ create index if not exists idx_pending_state_subject on pending_state_records(subject);
24202420+ `)
24212421+ return err
24222422+ })
24232423+23752424 return &DB{
23762425 db,
23772426 logger,