diff --git a/kdb-bot/src/bot/startup_migration_extension.py b/kdb-bot/src/bot/startup_migration_extension.py index 3434344f..527958ae 100644 --- a/kdb-bot/src/bot/startup_migration_extension.py +++ b/kdb-bot/src/bot/startup_migration_extension.py @@ -13,6 +13,7 @@ from bot_data.migration.config_feature_flags_migration import ConfigFeatureFlags from bot_data.migration.config_migration import ConfigMigration from bot_data.migration.db_history_migration import DBHistoryMigration from bot_data.migration.default_role_migration import DefaultRoleMigration +from bot_data.migration.fix_updates_migration import FixUpdatesMigration from bot_data.migration.initial_migration import InitialMigration from bot_data.migration.level_migration import LevelMigration from bot_data.migration.remove_stats_migration import RemoveStatsMigration @@ -52,3 +53,4 @@ class StartupMigrationExtension(StartupExtensionABC): services.add_transient(MigrationABC, ConfigFeatureFlagsMigration) # 15.08.2023 #334 - 1.1.0 services.add_transient(MigrationABC, DefaultRoleMigration) # 24.09.2023 #360 - 1.1.3 services.add_transient(MigrationABC, ShortRoleNameMigration) # 28.09.2023 #378 - 1.1.7 + services.add_transient(MigrationABC, FixUpdatesMigration) # 28.09.2023 #378 - 1.1.7 diff --git a/kdb-bot/src/bot_data/abc/migration_abc.py b/kdb-bot/src/bot_data/abc/migration_abc.py index d09c52ac..8d6ebb0f 100644 --- a/kdb-bot/src/bot_data/abc/migration_abc.py +++ b/kdb-bot/src/bot_data/abc/migration_abc.py @@ -24,8 +24,6 @@ class MigrationABC(ABC): def downgrade(self): pass - - def _exec(self, file: str): path = f"{os.path.dirname(os.path.realpath(__file__))}/db_history_scripts" sql = open(f"{path}/{file}").read() diff --git a/kdb-bot/src/bot_data/migration/db_history_scripts/config/server.sql b/kdb-bot/src/bot_data/migration/db_history_scripts/config/server.sql index e9c327b8..0cbc399a 100644 --- a/kdb-bot/src/bot_data/migration/db_history_scripts/config/server.sql +++ b/kdb-bot/src/bot_data/migration/db_history_scripts/config/server.sql @@ -1,23 +1,25 @@ CREATE TABLE IF NOT EXISTS `CFG_ServerHistory` ( - `Id` BIGINT(20) NOT NULL, - `MessageDeleteTimer` BIGINT NOT NULL DEFAULT 6, - `NotificationChatId` BIGINT NOT NULL, - `MaxVoiceStateHours` BIGINT NOT NULL DEFAULT 6, - `XpPerMessage` BIGINT NOT NULL DEFAULT 1, - `XpPerReaction` BIGINT NOT NULL DEFAULT 1, - `MaxMessageXpPerHour` BIGINT NOT NULL DEFAULT 20, - `XpPerOntimeHour` BIGINT NOT NULL DEFAULT 10, - `XpPerEventParticipation` BIGINT NOT NULL DEFAULT 10, - `XpPerAchievement` BIGINT NOT NULL DEFAULT 10, - `AFKCommandChannelId` BIGINT NOT NULL, - `HelpVoiceChannelId` BIGINT NOT NULL, - `TeamChannelId` BIGINT NOT NULL, - `LoginMessageChannelId` BIGINT NOT NULL, - `ServerId` BIGINT NOT NULL, - `Deleted` BOOL DEFAULT FALSE, - `DateFrom` DATETIME(6) NOT NULL, - `DateTo` DATETIME(6) NOT NULL + `Id` BIGINT(20) NOT NULL, + `MessageDeleteTimer` BIGINT NOT NULL DEFAULT 6, + `NotificationChatId` BIGINT NOT NULL, + `MaxVoiceStateHours` BIGINT NOT NULL DEFAULT 6, + `XpPerMessage` BIGINT NOT NULL DEFAULT 1, + `XpPerReaction` BIGINT NOT NULL DEFAULT 1, + `MaxMessageXpPerHour` BIGINT NOT NULL DEFAULT 20, + `XpPerOntimeHour` BIGINT NOT NULL DEFAULT 10, + `XpPerEventParticipation` BIGINT NOT NULL DEFAULT 10, + `XpPerAchievement` BIGINT NOT NULL DEFAULT 10, + `AFKCommandChannelId` BIGINT NOT NULL, + `HelpVoiceChannelId` BIGINT NOT NULL, + `TeamChannelId` BIGINT NOT NULL, + `LoginMessageChannelId` BIGINT NOT NULL, + `DefaultRoleId` BIGINT NULL, + `FeatureFlags` JSON NULL DEFAULT ('{}'), + `ServerId` BIGINT NOT NULL, + `Deleted` BOOL DEFAULT FALSE, + `DateFrom` DATETIME(6) NOT NULL, + `DateTo` DATETIME(6) NOT NULL ); DROP TRIGGER IF EXISTS `TR_CFG_ServerUpdate`; @@ -27,44 +29,44 @@ CREATE TRIGGER `TR_CFG_ServerUpdate` ON `CFG_Server` FOR EACH ROW BEGIN - INSERT INTO `CFG_ServerHistory` ( - `Id`, - `MessageDeleteTimer`, - `NotificationChatId`, - `MaxVoiceStateHours`, - `XpPerMessage`, - `XpPerReaction`, - `MaxMessageXpPerHour`, - `XpPerOntimeHour`, - `XpPerEventParticipation`, - `XpPerAchievement`, - `AFKCommandChannelId`, - `HelpVoiceChannelId`, - `TeamChannelId`, - `LoginMessageChannelId`, - `ServerId`, - `DateFrom`, - `DateTo` - ) - VALUES ( - OLD.Id, - OLD.MessageDeleteTimer, - OLD.NotificationChatId, - OLD.MaxVoiceStateHours, - OLD.XpPerMessage, - OLD.XpPerReaction, - OLD.MaxMessageXpPerHour, - OLD.XpPerOntimeHour, - OLD.XpPerEventParticipation, - OLD.XpPerAchievement, - OLD.AFKCommandChannelId, - OLD.HelpVoiceChannelId, - OLD.TeamChannelId, - OLD.LoginMessageChannelId, - OLD.ServerId, - OLD.LastModifiedAt, - CURRENT_TIMESTAMP(6) - ); + INSERT INTO `CFG_ServerHistory` (`Id`, + `MessageDeleteTimer`, + `NotificationChatId`, + `MaxVoiceStateHours`, + `XpPerMessage`, + `XpPerReaction`, + `MaxMessageXpPerHour`, + `XpPerOntimeHour`, + `XpPerEventParticipation`, + `XpPerAchievement`, + `AFKCommandChannelId`, + `HelpVoiceChannelId`, + `TeamChannelId`, + `LoginMessageChannelId`, + `DefaultRoleId`, + `FeatureFlags`, + `ServerId`, + `DateFrom`, + `DateTo`) + VALUES (OLD.Id, + OLD.MessageDeleteTimer, + OLD.NotificationChatId, + OLD.MaxVoiceStateHours, + OLD.XpPerMessage, + OLD.XpPerReaction, + OLD.MaxMessageXpPerHour, + OLD.XpPerOntimeHour, + OLD.XpPerEventParticipation, + OLD.XpPerAchievement, + OLD.AFKCommandChannelId, + OLD.HelpVoiceChannelId, + OLD.TeamChannelId, + OLD.LoginMessageChannelId, + OLD.DefaultRoleId, + OLD.FeatureFlags, + OLD.ServerId, + OLD.LastModifiedAt, + CURRENT_TIMESTAMP(6)); END; DROP TRIGGER IF EXISTS `TR_CFG_ServerDelete`; @@ -74,44 +76,44 @@ CREATE TRIGGER `TR_CFG_ServerDelete` ON `CFG_Server` FOR EACH ROW BEGIN - INSERT INTO `CFG_ServerHistory` ( - `Id`, - `MessageDeleteTimer`, - `NotificationChatId`, - `MaxVoiceStateHours`, - `XpPerMessage`, - `XpPerReaction`, - `MaxMessageXpPerHour`, - `XpPerOntimeHour`, - `XpPerEventParticipation`, - `XpPerAchievement`, - `AFKCommandChannelId`, - `HelpVoiceChannelId`, - `TeamChannelId`, - `LoginMessageChannelId`, - `ServerId`, - `Deleted`, - `DateFrom`, - `DateTo` - ) - VALUES ( - OLD.Id, - OLD.MessageDeleteTimer, - OLD.NotificationChatId, - OLD.MaxVoiceStateHours, - OLD.XpPerMessage, - OLD.XpPerReaction, - OLD.MaxMessageXpPerHour, - OLD.XpPerOntimeHour, - OLD.XpPerEventParticipation, - OLD.XpPerAchievement, - OLD.AFKCommandChannelId, - OLD.HelpVoiceChannelId, - OLD.TeamChannelId, - OLD.LoginMessageChannelId, - OLD.ServerId, - TRUE, - OLD.LastModifiedAt, - CURRENT_TIMESTAMP(6) - ); + INSERT INTO `CFG_ServerHistory` (`Id`, + `MessageDeleteTimer`, + `NotificationChatId`, + `MaxVoiceStateHours`, + `XpPerMessage`, + `XpPerReaction`, + `MaxMessageXpPerHour`, + `XpPerOntimeHour`, + `XpPerEventParticipation`, + `XpPerAchievement`, + `AFKCommandChannelId`, + `HelpVoiceChannelId`, + `TeamChannelId`, + `LoginMessageChannelId`, + `DefaultRoleId`, + `ServerId`, + `FeatureFlags`, + `Deleted`, + `DateFrom`, + `DateTo`) + VALUES (OLD.Id, + OLD.MessageDeleteTimer, + OLD.NotificationChatId, + OLD.MaxVoiceStateHours, + OLD.XpPerMessage, + OLD.XpPerReaction, + OLD.MaxMessageXpPerHour, + OLD.XpPerOntimeHour, + OLD.XpPerEventParticipation, + OLD.XpPerAchievement, + OLD.AFKCommandChannelId, + OLD.HelpVoiceChannelId, + OLD.TeamChannelId, + OLD.LoginMessageChannelId, + OLD.DefaultRoleId, + OLD.FeatureFlags, + OLD.ServerId, + TRUE, + OLD.LastModifiedAt, + CURRENT_TIMESTAMP(6)); END; \ No newline at end of file diff --git a/kdb-bot/src/bot_data/migration/db_history_scripts/config/technician.sql b/kdb-bot/src/bot_data/migration/db_history_scripts/config/technician.sql index 50907c2f..2256cbc8 100644 --- a/kdb-bot/src/bot_data/migration/db_history_scripts/config/technician.sql +++ b/kdb-bot/src/bot_data/migration/db_history_scripts/config/technician.sql @@ -1,13 +1,14 @@ CREATE TABLE IF NOT EXISTS `CFG_TechnicianHistory` ( - `Id` BIGINT(20) NOT NULL, + `Id` BIGINT(20) NOT NULL, `HelpCommandReferenceUrl` VARCHAR(255) NOT NULL, - `WaitForRestart` BIGINT NOT NULL DEFAULT 8, - `WaitForShutdown` BIGINT NOT NULL DEFAULT 8, - `CacheMaxMessages` BIGINT NOT NULL DEFAULT 1000000, - `Deleted` BOOL DEFAULT FALSE, - `DateFrom` DATETIME(6) NOT NULL, - `DateTo` DATETIME(6) NOT NULL + `WaitForRestart` BIGINT NOT NULL DEFAULT 8, + `WaitForShutdown` BIGINT NOT NULL DEFAULT 8, + `CacheMaxMessages` BIGINT NOT NULL DEFAULT 1000000, + `FeatureFlags` JSON NULL DEFAULT ('{}'), + `Deleted` BOOL DEFAULT FALSE, + `DateFrom` DATETIME(6) NOT NULL, + `DateTo` DATETIME(6) NOT NULL ); DROP TRIGGER IF EXISTS `TR_CFG_TechnicianUpdate`; @@ -17,24 +18,22 @@ CREATE TRIGGER `TR_CFG_TechnicianUpdate` ON `CFG_Technician` FOR EACH ROW BEGIN - INSERT INTO `CFG_TechnicianHistory` ( - `Id`, - `HelpCommandReferenceUrl`, - `WaitForRestart`, - `WaitForShutdown`, - `CacheMaxMessages`, - `DateFrom`, - `DateTo` - ) - VALUES ( - OLD.Id, - OLD.HelpCommandReferenceUrl, - OLD.WaitForRestart, - OLD.WaitForShutdown, - OLD.CacheMaxMessages, - OLD.LastModifiedAt, - CURRENT_TIMESTAMP(6) - ); + INSERT INTO `CFG_TechnicianHistory` (`Id`, + `HelpCommandReferenceUrl`, + `WaitForRestart`, + `WaitForShutdown`, + `CacheMaxMessages`, + `FeatureFlags`, + `DateFrom`, + `DateTo`) + VALUES (OLD.Id, + OLD.HelpCommandReferenceUrl, + OLD.WaitForRestart, + OLD.WaitForShutdown, + OLD.CacheMaxMessages, + OLD.FeatureFlags, + OLD.LastModifiedAt, + CURRENT_TIMESTAMP(6)); END; DROP TRIGGER IF EXISTS `TR_CFG_TechnicianDelete`; @@ -44,24 +43,22 @@ CREATE TRIGGER `TR_CFG_TechnicianDelete` ON `CFG_Technician` FOR EACH ROW BEGIN - INSERT INTO `CFG_TechnicianHistory` ( - `Id`, - `HelpCommandReferenceUrl`, - `WaitForRestart`, - `WaitForShutdown`, - `CacheMaxMessages`, - `Deleted`, - `DateFrom`, - `DateTo` - ) - VALUES ( - OLD.Id, - OLD.HelpCommandReferenceUrl, - OLD.WaitForRestart, - OLD.WaitForShutdown, - OLD.CacheMaxMessages, - TRUE, - OLD.LastModifiedAt, - CURRENT_TIMESTAMP(6) - ); + INSERT INTO `CFG_TechnicianHistory` (`Id`, + `HelpCommandReferenceUrl`, + `WaitForRestart`, + `WaitForShutdown`, + `CacheMaxMessages`, + `FeatureFlags`, + `Deleted`, + `DateFrom`, + `DateTo`) + VALUES (OLD.Id, + OLD.HelpCommandReferenceUrl, + OLD.WaitForRestart, + OLD.WaitForShutdown, + OLD.CacheMaxMessages, + OLD.FeatureFlags, + TRUE, + OLD.LastModifiedAt, + CURRENT_TIMESTAMP(6)); END; \ No newline at end of file diff --git a/kdb-bot/src/bot_data/migration/fix_updates_migration.py b/kdb-bot/src/bot_data/migration/fix_updates_migration.py new file mode 100644 index 00000000..7ccc96d0 --- /dev/null +++ b/kdb-bot/src/bot_data/migration/fix_updates_migration.py @@ -0,0 +1,22 @@ +from bot_core.logging.database_logger import DatabaseLogger +from bot_data.abc.migration_abc import MigrationABC +from bot_data.db_context import DBContext + + +class FixUpdatesMigration(MigrationABC): + name = "1.1.7_FixUpdatesMigration" + + def __init__(self, logger: DatabaseLogger, db: DBContext): + MigrationABC.__init__(self) + self._logger = logger + self._db = db + self._cursor = db.cursor + + def upgrade(self): + self._logger.debug(__name__, "Running upgrade") + + self._exec("config/server.sql") + self._exec("config/technician.sql") + + def downgrade(self): + pass diff --git a/kdb-bot/src/bot_data/migration/short_role_name_migration.py b/kdb-bot/src/bot_data/migration/short_role_name_migration.py index 4a427b25..de63ea97 100644 --- a/kdb-bot/src/bot_data/migration/short_role_name_migration.py +++ b/kdb-bot/src/bot_data/migration/short_role_name_migration.py @@ -32,7 +32,7 @@ class ShortRoleNameMigration(MigrationABC): ) ) - self._exec("config/short_rule_names.sql") + self._exec("short_rule_names.sql") def downgrade(self): self._cursor.execute("DROP TABLE `ShortRoleNames`;")