update_server/migrations/0002_indexes_and_triggers.sql
2026-06-10 20:51:17 +03:00

65 lines
1.9 KiB
SQL

CREATE INDEX idx_project_tags_tag_id ON project_tags(tag_id);
CREATE INDEX idx_releases_project_active_created_at ON releases(project_id, is_active, created_at DESC);
CREATE INDEX idx_releases_uploaded_by_user_id ON releases(uploaded_by_user_id);
CREATE INDEX idx_api_keys_scope_mode_active ON api_keys(scope_mode, is_active);
CREATE INDEX idx_api_key_project_access_project_id ON api_key_project_access(project_id);
CREATE INDEX idx_api_key_tag_access_tag_id ON api_key_tag_access(tag_id);
CREATE INDEX idx_sessions_user_id ON sessions(user_id);
CREATE INDEX idx_sessions_expires_at ON sessions(expires_at);
CREATE INDEX idx_audit_logs_created_at ON audit_logs(created_at);
CREATE INDEX idx_audit_logs_actor_user_id ON audit_logs(actor_user_id);
CREATE INDEX idx_audit_logs_api_key_id ON audit_logs(api_key_id);
CREATE TRIGGER users_touch_updated_at
AFTER UPDATE ON users
FOR EACH ROW
WHEN NEW.updated_at = OLD.updated_at
BEGIN
UPDATE users
SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
WHERE id = NEW.id;
END;
CREATE TRIGGER projects_touch_updated_at
AFTER UPDATE ON projects
FOR EACH ROW
WHEN NEW.updated_at = OLD.updated_at
BEGIN
UPDATE projects
SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
WHERE id = NEW.id;
END;
CREATE TRIGGER tags_touch_updated_at
AFTER UPDATE ON tags
FOR EACH ROW
WHEN NEW.updated_at = OLD.updated_at
BEGIN
UPDATE tags
SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
WHERE id = NEW.id;
END;
CREATE TRIGGER releases_touch_updated_at
AFTER UPDATE ON releases
FOR EACH ROW
WHEN NEW.updated_at = OLD.updated_at
BEGIN
UPDATE releases
SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
WHERE id = NEW.id;
END;
CREATE TRIGGER api_keys_touch_updated_at
AFTER UPDATE ON api_keys
FOR EACH ROW
WHEN NEW.updated_at = OLD.updated_at
BEGIN
UPDATE api_keys
SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now')
WHERE id = NEW.id;
END;