diff --git a/initialize/migrate/database/02153_user_subscribe_speed_limit.down.sql b/initialize/migrate/database/02153_user_subscribe_speed_limit.down.sql index 97891f8..d46dfea 100644 --- a/initialize/migrate/database/02153_user_subscribe_speed_limit.down.sql +++ b/initialize/migrate/database/02153_user_subscribe_speed_limit.down.sql @@ -1,3 +1,35 @@ -ALTER TABLE `user_subscribe` - DROP COLUMN IF EXISTS `speed_limit`, - DROP COLUMN IF EXISTS `traffic_limit`; +SET @traffic_limit_exists = ( + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'user_subscribe' + AND COLUMN_NAME = 'traffic_limit' +); + +SET @traffic_limit_sql = IF( + @traffic_limit_exists = 1, + 'ALTER TABLE `user_subscribe` DROP COLUMN `traffic_limit`', + 'SELECT 1' +); + +PREPARE traffic_limit_stmt FROM @traffic_limit_sql; +EXECUTE traffic_limit_stmt; +DEALLOCATE PREPARE traffic_limit_stmt; + +SET @speed_limit_exists = ( + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'user_subscribe' + AND COLUMN_NAME = 'speed_limit' +); + +SET @speed_limit_sql = IF( + @speed_limit_exists = 1, + 'ALTER TABLE `user_subscribe` DROP COLUMN `speed_limit`', + 'SELECT 1' +); + +PREPARE speed_limit_stmt FROM @speed_limit_sql; +EXECUTE speed_limit_stmt; +DEALLOCATE PREPARE speed_limit_stmt; diff --git a/initialize/migrate/database/02153_user_subscribe_speed_limit.up.sql b/initialize/migrate/database/02153_user_subscribe_speed_limit.up.sql index ae207a8..f7b4673 100644 --- a/initialize/migrate/database/02153_user_subscribe_speed_limit.up.sql +++ b/initialize/migrate/database/02153_user_subscribe_speed_limit.up.sql @@ -1,3 +1,35 @@ -ALTER TABLE `user_subscribe` - ADD COLUMN IF NOT EXISTS `speed_limit` BIGINT NOT NULL DEFAULT 0 COMMENT 'User-level speed limit override (Mbps), 0 uses plan-level', - ADD COLUMN IF NOT EXISTS `traffic_limit` TEXT DEFAULT NULL COMMENT 'User-level traffic limit override (JSON), NULL uses plan-level'; +SET @speed_limit_exists = ( + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'user_subscribe' + AND COLUMN_NAME = 'speed_limit' +); + +SET @speed_limit_sql = IF( + @speed_limit_exists = 0, + 'ALTER TABLE `user_subscribe` ADD COLUMN `speed_limit` BIGINT NOT NULL DEFAULT 0 COMMENT ''User-level speed limit override (Mbps), 0 uses plan-level'' AFTER `upload`', + 'SELECT 1' +); + +PREPARE speed_limit_stmt FROM @speed_limit_sql; +EXECUTE speed_limit_stmt; +DEALLOCATE PREPARE speed_limit_stmt; + +SET @traffic_limit_exists = ( + SELECT COUNT(*) + FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'user_subscribe' + AND COLUMN_NAME = 'traffic_limit' +); + +SET @traffic_limit_sql = IF( + @traffic_limit_exists = 0, + 'ALTER TABLE `user_subscribe` ADD COLUMN `traffic_limit` TEXT DEFAULT NULL COMMENT ''User-level traffic limit override (JSON), NULL uses plan-level'' AFTER `speed_limit`', + 'SELECT 1' +); + +PREPARE traffic_limit_stmt FROM @traffic_limit_sql; +EXECUTE traffic_limit_stmt; +DEALLOCATE PREPARE traffic_limit_stmt;