CREATE TABLE custom_emoji ( id serial PRIMARY KEY, local_site_id int REFERENCES local_site ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, shortcode varchar(128) NOT NULL UNIQUE, image_url text NOT NULL UNIQUE, alt_text text NOT NULL, category text NOT NULL, published timestamp without time zone DEFAULT now() NOT NULL, updated timestamp without time zone ); CREATE TABLE custom_emoji_keyword ( id serial PRIMARY KEY, custom_emoji_id int REFERENCES custom_emoji ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, keyword varchar(128) NOT NULL, UNIQUE (custom_emoji_id, keyword) ); CREATE INDEX idx_custom_emoji_category ON custom_emoji (id, category);