" CREATE VIRTUAL TABLE IF NOT EXISTS posts_fts USING fts5( title, content, author_username, tokenize = 'unicode61 remove_diacritics 1' ); CREATE TRIGGER IF NOT EXISTS posts_fts_insert AFTER INSERT ON posts BEGIN INSERT INTO posts_fts(rowid, title, content, author_username) VALUES ( NEW.id, NEW.title, COALESCE(strip_tags(NEW.content), ''), COALESCE((SELECT username FROM users WHERE id = NEW.author_id), '') ); END; CREATE TRIGGER IF NOT EXISTS posts_fts_update AFTER UPDATE ON posts BEGIN DELETE FROM posts_fts WHERE rowid = OLD.id; INSERT INTO posts_fts(rowid, title, content, author_username) VALUES ( NEW.id, NEW.title, COALESCE(strip_tags(NEW.content), ''), COALESCE((SELECT username FROM users WHERE id = NEW.author_id), '') ); END; CREATE TRIGGER IF NOT EXISTS posts_fts_delete AFTER DELETE ON posts BEGIN DELETE FROM posts_fts WHERE rowid = OLD.id; END; ", 'down' => " DROP TRIGGER IF EXISTS posts_fts_delete; DROP TRIGGER IF EXISTS posts_fts_update; DROP TRIGGER IF EXISTS posts_fts_insert; DROP TABLE IF EXISTS posts_fts; ", ];