backend for xcvr appview

add migrations for current lexicon

Changed files
+55 -2
migrations
+46 -1
migrations/001_init.up.sql
··· 1 + CREATE TABLE profiles ( 2 + did TEXT PRIMARY KEY, 3 + display_name TEXT, 4 + default_nick TEXT, 5 + status TEXT, 6 + avatar_cid TEXT, 7 + avatar_mime TEXT, 8 + color INTEGER CHECK (color BETWEEN 0 and 16777215), 9 + uri TEXT NOT NULL UNIQUE, 10 + cid TEXT NOT NULL, 11 + indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 12 + ); 13 + 14 + CREATE TABLE did_handle ( 15 + handle TEXT PRIMARY KEY, 16 + did TEXT NOT NULL UNIQUE, 17 + indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 18 + ); 19 + 1 20 CREATE TABLE channels ( 2 21 uri TEXT PRIMARY KEY, 3 22 cid TEXT NOT NULL, ··· 7 26 topic TEXT, 8 27 created_at TIMESTAMPTZ NOT NULL, 9 28 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 10 - ); 29 + ); 30 + 31 + CREATE TABLE signets ( 32 + uri TEXT PRIMARY KEY, 33 + did TEXT NOT NULL, 34 + channel_uri TEXT NOT NULL, 35 + FOREIGN KEY (channel_uri) REFERENCES channels(uri) ON DELETE CASCADE, 36 + message_id INTEGER CHECK (message_id BETWEEN 0 AND 4294967295), 37 + cid TEXT NOT NULL, 38 + indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 39 + ); 40 + 41 + CREATE INDEX ON signets (channel_uri, message_id DESC); 42 + 43 + CREATE TABLE messages ( 44 + uri TEXT PRIMARY KEY, 45 + did TEXT NOT NULL, 46 + signet_uri TEXT NOT NULL, 47 + FOREIGN KEY (signet_uri) REFERENCES signets(uri) ON DELETE CASCADE, 48 + body TEXT, 49 + nick TEXT NOT NULL DEFAULT 'wanderer', 50 + color INTEGER CHECK (color BETWEEN 0 AND 16777215), 51 + cid TEXT NOT NULL, 52 + indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 53 + ); 54 + 55 + CREATE INDEX ON messages (signet_uri);
+9 -1
migrations/002_init.down.sql
··· 1 - DROP TABLE channels; 1 + DROP INDEX IF EXISTS messages_signet_uri_idx; 2 + DROP TABLE messages; 3 + 4 + DROP INDEX IF EXISTS signets_channel_uri_message_id_idx; 5 + DROP TABLE signets; 6 + 7 + DROP TABLE channels; 8 + DROP TABLE did_handle; 9 + DROP TABLE profiles;