verstak/internal/core/storage/migrations_020.sql.go

35 lines
1.8 KiB
Go

package storage
// migration020 — add title_lower columns to links and actions for case-insensitive search.
const migration020 = `
ALTER TABLE links ADD COLUMN title_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE links ADD COLUMN url_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE links ADD COLUMN hostname_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE links ADD COLUMN note_lower TEXT NOT NULL DEFAULT '';
UPDATE links SET title_lower = LOWER(title) WHERE title_lower = '';
UPDATE links SET url_lower = LOWER(url) WHERE url_lower = '';
UPDATE links SET hostname_lower = LOWER(hostname) WHERE hostname_lower = '';
UPDATE links SET note_lower = LOWER(note) WHERE note_lower = '';
CREATE INDEX IF NOT EXISTS idx_links_title_lower ON links(title_lower);
CREATE INDEX IF NOT EXISTS idx_links_url_lower ON links(url_lower);
CREATE INDEX IF NOT EXISTS idx_links_hostname_lower ON links(hostname_lower);
CREATE INDEX IF NOT EXISTS idx_links_note_lower ON links(note_lower);
ALTER TABLE actions ADD COLUMN title_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE actions ADD COLUMN kind_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE actions ADD COLUMN url_lower TEXT NOT NULL DEFAULT '';
ALTER TABLE actions ADD COLUMN command_lower TEXT NOT NULL DEFAULT '';
UPDATE actions SET title_lower = LOWER(title) WHERE title_lower = '';
UPDATE actions SET kind_lower = LOWER(kind) WHERE kind_lower = '';
UPDATE actions SET url_lower = LOWER(url) WHERE url_lower = '';
UPDATE actions SET command_lower = LOWER(command) WHERE command_lower = '';
CREATE INDEX IF NOT EXISTS idx_actions_title_lower ON actions(title_lower);
CREATE INDEX IF NOT EXISTS idx_actions_kind_lower ON actions(kind_lower);
CREATE INDEX IF NOT EXISTS idx_actions_url_lower ON actions(url_lower);
CREATE INDEX IF NOT EXISTS idx_actions_command_lower ON actions(command_lower);
`