···11+CREATE TABLE `backfill_errors` (
22+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
33+ `backfill_id` integer NOT NULL,
44+ `did` text NOT NULL,
55+ `collection` text NOT NULL,
66+ `error_message` text NOT NULL,
77+ `created_at` integer NOT NULL,
88+ FOREIGN KEY (`backfill_id`) REFERENCES `backfill_progress`(`id`) ON UPDATE no action ON DELETE no action
99+);
1010+--> statement-breakpoint
1111+CREATE INDEX `backfill_errors_backfill_id_idx` ON `backfill_errors` (`backfill_id`);--> statement-breakpoint
1212+CREATE TABLE `backfill_progress` (
1313+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
1414+ `status` text NOT NULL,
1515+ `backfill_type` text NOT NULL,
1616+ `last_processed_did` text,
1717+ `dids_total` integer DEFAULT 0 NOT NULL,
1818+ `dids_processed` integer DEFAULT 0 NOT NULL,
1919+ `records_indexed` integer DEFAULT 0 NOT NULL,
2020+ `started_at` integer NOT NULL,
2121+ `completed_at` integer,
2222+ `error_message` text
2323+);
2424+--> statement-breakpoint
2525+CREATE TABLE `boards` (
2626+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
2727+ `did` text NOT NULL,
2828+ `rkey` text NOT NULL,
2929+ `cid` text NOT NULL,
3030+ `name` text NOT NULL,
3131+ `description` text,
3232+ `slug` text,
3333+ `sort_order` integer,
3434+ `category_id` integer,
3535+ `category_uri` text NOT NULL,
3636+ `created_at` integer NOT NULL,
3737+ `indexed_at` integer NOT NULL,
3838+ FOREIGN KEY (`category_id`) REFERENCES `categories`(`id`) ON UPDATE no action ON DELETE no action
3939+);
4040+--> statement-breakpoint
4141+CREATE UNIQUE INDEX `boards_did_rkey_idx` ON `boards` (`did`,`rkey`);--> statement-breakpoint
4242+CREATE INDEX `boards_category_id_idx` ON `boards` (`category_id`);--> statement-breakpoint
4343+CREATE TABLE `categories` (
4444+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
4545+ `did` text NOT NULL,
4646+ `rkey` text NOT NULL,
4747+ `cid` text NOT NULL,
4848+ `name` text NOT NULL,
4949+ `description` text,
5050+ `slug` text,
5151+ `sort_order` integer,
5252+ `forum_id` integer,
5353+ `created_at` integer NOT NULL,
5454+ `indexed_at` integer NOT NULL,
5555+ FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action
5656+);
5757+--> statement-breakpoint
5858+CREATE UNIQUE INDEX `categories_did_rkey_idx` ON `categories` (`did`,`rkey`);--> statement-breakpoint
5959+CREATE TABLE `firehose_cursor` (
6060+ `service` text PRIMARY KEY DEFAULT 'jetstream' NOT NULL,
6161+ `cursor` integer NOT NULL,
6262+ `updated_at` integer NOT NULL
6363+);
6464+--> statement-breakpoint
6565+CREATE TABLE `forums` (
6666+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
6767+ `did` text NOT NULL,
6868+ `rkey` text NOT NULL,
6969+ `cid` text NOT NULL,
7070+ `name` text NOT NULL,
7171+ `description` text,
7272+ `indexed_at` integer NOT NULL
7373+);
7474+--> statement-breakpoint
7575+CREATE UNIQUE INDEX `forums_did_rkey_idx` ON `forums` (`did`,`rkey`);--> statement-breakpoint
7676+CREATE TABLE `memberships` (
7777+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
7878+ `did` text NOT NULL,
7979+ `rkey` text NOT NULL,
8080+ `cid` text NOT NULL,
8181+ `forum_id` integer,
8282+ `forum_uri` text NOT NULL,
8383+ `role` text,
8484+ `role_uri` text,
8585+ `joined_at` integer,
8686+ `created_at` integer NOT NULL,
8787+ `indexed_at` integer NOT NULL,
8888+ FOREIGN KEY (`did`) REFERENCES `users`(`did`) ON UPDATE no action ON DELETE no action,
8989+ FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action
9090+);
9191+--> statement-breakpoint
9292+CREATE UNIQUE INDEX `memberships_did_rkey_idx` ON `memberships` (`did`,`rkey`);--> statement-breakpoint
9393+CREATE INDEX `memberships_did_idx` ON `memberships` (`did`);--> statement-breakpoint
9494+CREATE TABLE `mod_actions` (
9595+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
9696+ `did` text NOT NULL,
9797+ `rkey` text NOT NULL,
9898+ `cid` text NOT NULL,
9999+ `action` text NOT NULL,
100100+ `subject_did` text,
101101+ `subject_post_uri` text,
102102+ `forum_id` integer,
103103+ `reason` text,
104104+ `created_by` text NOT NULL,
105105+ `expires_at` integer,
106106+ `created_at` integer NOT NULL,
107107+ `indexed_at` integer NOT NULL,
108108+ FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON UPDATE no action ON DELETE no action
109109+);
110110+--> statement-breakpoint
111111+CREATE UNIQUE INDEX `mod_actions_did_rkey_idx` ON `mod_actions` (`did`,`rkey`);--> statement-breakpoint
112112+CREATE INDEX `mod_actions_subject_did_idx` ON `mod_actions` (`subject_did`);--> statement-breakpoint
113113+CREATE INDEX `mod_actions_subject_post_uri_idx` ON `mod_actions` (`subject_post_uri`);--> statement-breakpoint
114114+CREATE TABLE `posts` (
115115+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
116116+ `did` text NOT NULL,
117117+ `rkey` text NOT NULL,
118118+ `cid` text NOT NULL,
119119+ `title` text,
120120+ `text` text NOT NULL,
121121+ `forum_uri` text,
122122+ `board_uri` text,
123123+ `board_id` integer,
124124+ `root_post_id` integer,
125125+ `parent_post_id` integer,
126126+ `root_uri` text,
127127+ `parent_uri` text,
128128+ `created_at` integer NOT NULL,
129129+ `indexed_at` integer NOT NULL,
130130+ `banned_by_mod` integer DEFAULT false NOT NULL,
131131+ `deleted_by_user` integer DEFAULT false NOT NULL,
132132+ FOREIGN KEY (`did`) REFERENCES `users`(`did`) ON UPDATE no action ON DELETE no action,
133133+ FOREIGN KEY (`board_id`) REFERENCES `boards`(`id`) ON UPDATE no action ON DELETE no action,
134134+ FOREIGN KEY (`root_post_id`) REFERENCES `posts`(`id`) ON UPDATE no action ON DELETE no action,
135135+ FOREIGN KEY (`parent_post_id`) REFERENCES `posts`(`id`) ON UPDATE no action ON DELETE no action
136136+);
137137+--> statement-breakpoint
138138+CREATE UNIQUE INDEX `posts_did_rkey_idx` ON `posts` (`did`,`rkey`);--> statement-breakpoint
139139+CREATE INDEX `posts_forum_uri_idx` ON `posts` (`forum_uri`);--> statement-breakpoint
140140+CREATE INDEX `posts_board_id_idx` ON `posts` (`board_id`);--> statement-breakpoint
141141+CREATE INDEX `posts_board_uri_idx` ON `posts` (`board_uri`);--> statement-breakpoint
142142+CREATE INDEX `posts_root_post_id_idx` ON `posts` (`root_post_id`);--> statement-breakpoint
143143+CREATE TABLE `role_permissions` (
144144+ `role_id` integer NOT NULL,
145145+ `permission` text NOT NULL,
146146+ PRIMARY KEY(`role_id`, `permission`),
147147+ FOREIGN KEY (`role_id`) REFERENCES `roles`(`id`) ON UPDATE no action ON DELETE cascade
148148+);
149149+--> statement-breakpoint
150150+CREATE TABLE `roles` (
151151+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
152152+ `did` text NOT NULL,
153153+ `rkey` text NOT NULL,
154154+ `cid` text NOT NULL,
155155+ `name` text NOT NULL,
156156+ `description` text,
157157+ `priority` integer NOT NULL,
158158+ `created_at` integer NOT NULL,
159159+ `indexed_at` integer NOT NULL
160160+);
161161+--> statement-breakpoint
162162+CREATE UNIQUE INDEX `roles_did_rkey_idx` ON `roles` (`did`,`rkey`);--> statement-breakpoint
163163+CREATE INDEX `roles_did_idx` ON `roles` (`did`);--> statement-breakpoint
164164+CREATE INDEX `roles_did_name_idx` ON `roles` (`did`,`name`);--> statement-breakpoint
165165+CREATE TABLE `users` (
166166+ `did` text PRIMARY KEY NOT NULL,
167167+ `handle` text,
168168+ `indexed_at` integer NOT NULL
169169+);