From a89095cbccacb8e42041e21f5d5d0de8482c4976 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Sun, 29 Mar 2026 22:03:16 -0400 Subject: [PATCH] chore: delete applied migrations (001-002, 004-005 all applied to DB) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All SQL migration files have been applied and recorded in the migrations tracking table. Folder intentionally empty — migrate.php kept as runner for future one-time schema changes. Co-Authored-By: Claude Sonnet 4.6 --- migrations/001_add_indexes.sql | 48 ------------------------ migrations/002_add_comment_threading.sql | 19 ---------- migrations/004_add_ticket_watchers.sql | 10 ----- migrations/005_add_fulltext_search.sql | 6 --- 4 files changed, 83 deletions(-) delete mode 100644 migrations/001_add_indexes.sql delete mode 100644 migrations/002_add_comment_threading.sql delete mode 100644 migrations/004_add_ticket_watchers.sql delete mode 100644 migrations/005_add_fulltext_search.sql 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);