-- DBN DMS migration 002 — soft-delete trash -- Adds deleted_at / deleted_by columns to client_documents and client_folders. -- client_documents.deleted_at SET @col_exists := ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'client_documents' AND COLUMN_NAME = 'deleted_at' ); SET @sql := IF(@col_exists = 0, 'ALTER TABLE client_documents ADD COLUMN deleted_at DATETIME NULL AFTER updated_at, ADD COLUMN deleted_by INT UNSIGNED NULL AFTER deleted_at, ADD KEY idx_deleted (deleted_at)', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- client_folders.deleted_at (folders table may not exist if migration 119 hasn't run; guard table too) SET @tbl_exists := ( SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'client_folders' ); SET @col_exists := IF(@tbl_exists = 0, 1, (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'client_folders' AND COLUMN_NAME = 'deleted_at') ); SET @sql := IF(@tbl_exists = 1 AND @col_exists = 0, 'ALTER TABLE client_folders ADD COLUMN deleted_at DATETIME NULL, ADD COLUMN deleted_by INT UNSIGNED NULL, ADD KEY idx_deleted (deleted_at)', 'SELECT 1'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;