diff --git a/migrations/001_add_indexes.sql b/migrations/001_add_indexes.sql deleted file mode 100644 index 5820ef5..0000000 --- a/migrations/001_add_indexes.sql +++ /dev/null @@ -1,48 +0,0 @@ --- Migration: Add Performance Indexes --- Run this migration to improve query performance on common operations - --- Single-column indexes for filtering --- These support the most common WHERE clauses in getAllTickets() - --- Status filtering (very common - used in almost every query) -CREATE INDEX IF NOT EXISTS idx_tickets_status ON tickets(status); - --- Category and type filtering -CREATE INDEX IF NOT EXISTS idx_tickets_category ON tickets(category); -CREATE INDEX IF NOT EXISTS idx_tickets_type ON tickets(type); - --- Priority filtering -CREATE INDEX IF NOT EXISTS idx_tickets_priority ON tickets(priority); - --- Date-based filtering and sorting -CREATE INDEX IF NOT EXISTS idx_tickets_created_at ON tickets(created_at); -CREATE INDEX IF NOT EXISTS idx_tickets_updated_at ON tickets(updated_at); - --- User filtering -CREATE INDEX IF NOT EXISTS idx_tickets_created_by ON tickets(created_by); -CREATE INDEX IF NOT EXISTS idx_tickets_assigned_to ON tickets(assigned_to); - --- Visibility filtering (used in every authenticated query) -CREATE INDEX IF NOT EXISTS idx_tickets_visibility ON tickets(visibility); - --- Composite indexes for common query patterns --- These are more efficient than single indexes for combined filters - --- Status + created_at (common sorting with status filter) -CREATE INDEX IF NOT EXISTS idx_tickets_status_created ON tickets(status, created_at); - --- Assigned_to + status (for "my open tickets" queries) -CREATE INDEX IF NOT EXISTS idx_tickets_assigned_status ON tickets(assigned_to, status); - --- Visibility + status (visibility filtering with status) -CREATE INDEX IF NOT EXISTS idx_tickets_visibility_status ON tickets(visibility, status); - --- ticket_comments table --- Optimize comment retrieval by ticket -CREATE INDEX IF NOT EXISTS idx_comments_ticket_created ON ticket_comments(ticket_id, created_at); - --- Audit log indexes (if audit_log table exists) --- Optimize audit log queries -CREATE INDEX IF NOT EXISTS idx_audit_entity ON audit_log(entity_type, entity_id); -CREATE INDEX IF NOT EXISTS idx_audit_user ON audit_log(user_id, created_at); -CREATE INDEX IF NOT EXISTS idx_audit_action ON audit_log(action, created_at); diff --git a/migrations/002_add_comment_threading.sql b/migrations/002_add_comment_threading.sql deleted file mode 100644 index c32b12d..0000000 --- a/migrations/002_add_comment_threading.sql +++ /dev/null @@ -1,19 +0,0 @@ --- Migration: Add comment threading support --- Adds parent_comment_id for reply/thread functionality - --- Add parent_comment_id column for threaded comments -ALTER TABLE ticket_comments -ADD COLUMN parent_comment_id INT NULL DEFAULT NULL AFTER comment_id; - --- Add foreign key constraint (self-referencing for thread hierarchy) -ALTER TABLE ticket_comments -ADD CONSTRAINT fk_parent_comment -FOREIGN KEY (parent_comment_id) REFERENCES ticket_comments(comment_id) -ON DELETE CASCADE; - --- Add index for efficient thread retrieval -CREATE INDEX idx_parent_comment ON ticket_comments(parent_comment_id); - --- Add thread_depth column to track nesting level (prevents infinite recursion issues) -ALTER TABLE ticket_comments -ADD COLUMN thread_depth TINYINT UNSIGNED NOT NULL DEFAULT 0 AFTER parent_comment_id; diff --git a/migrations/004_add_ticket_watchers.sql b/migrations/004_add_ticket_watchers.sql deleted file mode 100644 index 4f13538..0000000 --- a/migrations/004_add_ticket_watchers.sql +++ /dev/null @@ -1,10 +0,0 @@ --- Migration: Add ticket watchers table --- Allows users to subscribe to ticket updates and receive Matrix notifications. - -CREATE TABLE IF NOT EXISTS ticket_watchers ( - ticket_id INT NOT NULL, - user_id INT NOT NULL, - created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (ticket_id, user_id), - INDEX idx_watcher_user (user_id) -); diff --git a/migrations/005_add_fulltext_search.sql b/migrations/005_add_fulltext_search.sql deleted file mode 100644 index 4f0622f..0000000 --- a/migrations/005_add_fulltext_search.sql +++ /dev/null @@ -1,6 +0,0 @@ --- Migration: Add FULLTEXT index on ticket title and description --- Replaces LIKE '%term%' with MATCH ... AGAINST for dramatically better search --- performance and relevance ranking at scale. --- MyISAM not needed — InnoDB supports FULLTEXT since MySQL 5.6. - -ALTER TABLE tickets ADD FULLTEXT INDEX ft_title_description (title, description);