···4747 name text not null,
4848 knot text not null,
4949 rkey text not null,
5050+ at_uri text not null unique,
5051 created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
5152 unique(did, name, knot, rkey)
5253 );
···5960 create table if not exists follows (
6061 user_did text not null,
6162 subject_did text not null,
6363+ at_uri text not null unique,
6264 rkey text not null,
6365 followed_at text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
6466 primary key (user_did, subject_did),
6567 check (user_did <> subject_did)
6668 );
6969+ create table if not exists issues (
7070+ id integer primary key autoincrement,
7171+ owner_did text not null,
7272+ repo_at text not null,
7373+ issue_id integer not null unique,
7474+ title text not null,
7575+ body text not null,
7676+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
7777+ unique(repo_at, issue_id),
7878+ foreign key (repo_at) references repos(at_uri) on delete cascade
7979+ );
8080+ create table if not exists comments (
8181+ id integer primary key autoincrement,
8282+ owner_did text not null,
8383+ issue_id integer not null,
8484+ repo_at text not null,
8585+ comment_id integer not null,
8686+ body text not null,
8787+ created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
8888+ unique(issue_id, comment_id),
8989+ foreign key (issue_id) references issues(issue_id) on delete cascade
9090+ );
6791 create table if not exists _jetstream (
6892 id integer primary key autoincrement,
6993 last_time_us integer not null
7094 );
9595+9696+ create table if not exists repo_issue_seqs (
9797+ repo_at text primary key,
9898+ next_issue_id integer not null default 1
9999+ );
100100+71101 `)
72102 if err != nil {
73103 return nil, err