diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index bf0472d408..6691f0aca1 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -3831,7 +3831,7 @@ INSERT INTO `updates` VALUES ('2025_10_29_00_characters.sql','DC6A5D66E866352AC243869B627D282EE6A8B4F2','ARCHIVED','2025-10-29 06:57:00',0), ('2025_11_25_00_characters.sql','A0C04B2404B1832421402F78436DDC4AA18EBAD8','ARCHIVED','2025-11-25 22:28:32',0), ('2026_01_14_00_characters.sql','FF5D889A41BBD9F9827489DEC08BCA9DB457933E','ARCHIVED','2026-01-14 23:40:33',0), -('2026_01_28_00_characters.sql','4BC854318CA2992BC894899A5BE5F4EC891FDF76','ARCHIVED','2026-01-25 21:53:51',0), +('2026_01_28_00_characters.sql','807B6622970E81089806C3B45C6C7A32EF531BCA','ARCHIVED','2026-01-25 21:53:51',0), ('2026_02_06_00_characters.sql','90735F4481A137E79B8371F291008CF6051657AC','ARCHIVED','2026-02-06 12:45:48',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/old/12.x/characters/26011_2026_02_06/2026_01_28_00_characters.sql b/sql/old/12.x/characters/26011_2026_02_06/2026_01_28_00_characters.sql index bbf1dd91f6..6135c1b4ec 100644 --- a/sql/old/12.x/characters/26011_2026_02_06/2026_01_28_00_characters.sql +++ b/sql/old/12.x/characters/26011_2026_02_06/2026_01_28_00_characters.sql @@ -1 +1,11 @@ -ALTER TABLE `character_stats` ADD `spirit` int unsigned NOT NULL DEFAULT '0' AFTER `intellect`; +DELIMITER ;; +CREATE PROCEDURE characters_2026_01_28_00() BEGIN + IF NOT EXISTS (SELECT * FROM `information_schema`.`columns` WHERE `table_schema`=SCHEMA() AND `table_name`='character_stats' AND `column_name`='spirit') THEN + ALTER TABLE `character_stats` ADD `spirit` int unsigned NOT NULL DEFAULT '0' AFTER `intellect`; + END IF; +END;; + +DELIMITER ; +CALL characters_2026_01_28_00(); + +DROP PROCEDURE IF EXISTS characters_2026_01_28_00; diff --git a/sql/old/12.x/hotfixes/26011_2026_02_06/2026_01_28_00_hotfixes.sql b/sql/old/12.x/hotfixes/26011_2026_02_06/2026_01_28_00_hotfixes.sql index 2b91a4f9fd..511489bf6e 100644 --- a/sql/old/12.x/hotfixes/26011_2026_02_06/2026_01_28_00_hotfixes.sql +++ b/sql/old/12.x/hotfixes/26011_2026_02_06/2026_01_28_00_hotfixes.sql @@ -1,171 +1,181 @@ -ALTER TABLE `area_trigger` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AreaTriggerActionSetID`; +DELIMITER ;; +CREATE PROCEDURE hotfixes_2026_01_28_00() BEGIN + IF NOT EXISTS (SELECT * FROM `information_schema`.`columns` WHERE `table_schema`=SCHEMA() AND `table_name`='liquid_type' AND `column_name`='Color3') THEN + ALTER TABLE `area_trigger` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AreaTriggerActionSetID`; -ALTER TABLE `artifact` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ChrSpecializationID`; + ALTER TABLE `artifact` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ChrSpecializationID`; -ALTER TABLE `artifact_appearance` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `UiAltItemAppearanceID`; + ALTER TABLE `artifact_appearance` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `UiAltItemAppearanceID`; -ALTER TABLE `artifact_appearance_set` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ForgeAttachmentOverride`; + ALTER TABLE `artifact_appearance_set` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ForgeAttachmentOverride`; -ALTER TABLE `artifact_power` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Label`; + ALTER TABLE `artifact_power` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Label`; -ALTER TABLE `battle_pet_ability` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BattlePetVisualID`; + ALTER TABLE `battle_pet_ability` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BattlePetVisualID`; -ALTER TABLE `battlemaster_list` ADD `InstanceType` tinyint NOT NULL DEFAULT 0 AFTER `LongDescription`; + ALTER TABLE `battlemaster_list` ADD `InstanceType` tinyint NOT NULL DEFAULT 0 AFTER `LongDescription`; -ALTER TABLE `cfg_categories` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ExistingCharsetMask`; + ALTER TABLE `cfg_categories` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `ExistingCharsetMask`; -ALTER TABLE `crafting_quality` ADD `CraftingQualityAtlasSetID` int NOT NULL DEFAULT 0 AFTER `QualityTier`; + ALTER TABLE `crafting_quality` ADD `CraftingQualityAtlasSetID` int NOT NULL DEFAULT 0 AFTER `QualityTier`; -ALTER TABLE `currency_types` - ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `OrderIndex`, - ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`, - ADD `MCRCurrencyID` int NOT NULL DEFAULT 0 AFTER `OrderSource`; + ALTER TABLE `currency_types` + ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `OrderIndex`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`, + ADD `MCRCurrencyID` int NOT NULL DEFAULT 0 AFTER `OrderSource`; -ALTER TABLE `difficulty` - MODIFY `FallbackDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `OldEnumValue`, - MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `MaxPlayers`, - MODIFY `ToggleDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ItemContext`; + ALTER TABLE `difficulty` + MODIFY `FallbackDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `OldEnumValue`, + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `MaxPlayers`, + MODIFY `ToggleDifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ItemContext`; -ALTER TABLE `dungeon_encounter` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; + ALTER TABLE `dungeon_encounter` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; -ALTER TABLE `garr_plot` - MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AllianceConstructObjID`, - DROP `UiCategoryID`; + ALTER TABLE `garr_plot` + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `AllianceConstructObjID`, + DROP `UiCategoryID`; -ALTER TABLE `holidays` - MODIFY `CalendarFilterType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Priority`, - MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `CalendarFilterType`; + ALTER TABLE `holidays` + MODIFY `CalendarFilterType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Priority`, + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `CalendarFilterType`; -ALTER TABLE `item` - ADD `Unknown1200` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ModifiedCraftingReagentItemID`, - CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `CraftingQualityID`, - ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `ItemSquishEraID`, - ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`; + ALTER TABLE `item` + ADD `Unknown1200` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ModifiedCraftingReagentItemID`, + CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `CraftingQualityID`, + ADD `RecraftReagentCountPercentage` float NOT NULL DEFAULT 0 AFTER `ItemSquishEraID`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RecraftReagentCountPercentage`; -ALTER TABLE `item_child_equipment` MODIFY `ChildItemEquipSlot` int NOT NULL DEFAULT 0 AFTER `ChildItemID`; + ALTER TABLE `item_child_equipment` MODIFY `ChildItemEquipSlot` int NOT NULL DEFAULT 0 AFTER `ChildItemID`; -ALTER TABLE `item_context_picker_entry` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `LabelID`; + ALTER TABLE `item_context_picker_entry` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `LabelID`; -ALTER TABLE `item_effect` MODIFY `TriggerType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `LegacySlotIndex`; + ALTER TABLE `item_effect` MODIFY `TriggerType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `LegacySlotIndex`; -ALTER TABLE `item_limit_category` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Quantity`; + ALTER TABLE `item_limit_category` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Quantity`; -ALTER TABLE `item_scaling_config` CHANGE `Unknown1125` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `RequiredLevel`; + ALTER TABLE `item_scaling_config` CHANGE `Unknown1125` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `RequiredLevel`; -ALTER TABLE `item_set` MODIFY `SetFlags` int NOT NULL DEFAULT 0 AFTER `Name`; + ALTER TABLE `item_set` MODIFY `SetFlags` int NOT NULL DEFAULT 0 AFTER `Name`; -ALTER TABLE `item_sparse` CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `ItemLevelOffsetItemLevel`; + ALTER TABLE `item_sparse` CHANGE `Unknown1127` `ItemSquishEraID` int NOT NULL DEFAULT 0 AFTER `ItemLevelOffsetItemLevel`; --- --- Table structure for table `item_squish_era` --- -DROP TABLE IF EXISTS `item_squish_era`; -CREATE TABLE `item_squish_era` ( - `ID` int unsigned NOT NULL DEFAULT '0', - `Patch` int NOT NULL DEFAULT '0', - `CurveID` int NOT NULL DEFAULT '0', - `Flags` int NOT NULL DEFAULT '0', - `VerifiedBuild` int NOT NULL DEFAULT '0', - PRIMARY KEY (`ID`,`VerifiedBuild`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + -- + -- Table structure for table `item_squish_era` + -- + DROP TABLE IF EXISTS `item_squish_era`; + CREATE TABLE `item_squish_era` ( + `ID` int unsigned NOT NULL DEFAULT '0', + `Patch` int NOT NULL DEFAULT '0', + `CurveID` int NOT NULL DEFAULT '0', + `Flags` int NOT NULL DEFAULT '0', + `VerifiedBuild` int NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`,`VerifiedBuild`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -ALTER TABLE `lfg_dungeons` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; + ALTER TABLE `lfg_dungeons` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `MapID`; -ALTER TABLE `liquid_type` - ADD `Color3` int NOT NULL DEFAULT 0 AFTER `Color2`, - ADD `Float19` float NOT NULL DEFAULT 0 AFTER `Float18`, - ADD `Float20` float NOT NULL DEFAULT 0 AFTER `Float19`, - ADD `Float21` float NOT NULL DEFAULT 0 AFTER `Float20`, - ADD `Float22` float NOT NULL DEFAULT 0 AFTER `Float21`, - ADD `Float23` float NOT NULL DEFAULT 0 AFTER `Float22`, - ADD `Float24` float NOT NULL DEFAULT 0 AFTER `Float23`, - ADD `Float25` float NOT NULL DEFAULT 0 AFTER `Float24`, - ADD `Float26` float NOT NULL DEFAULT 0 AFTER `Float25`, - ADD `Float27` float NOT NULL DEFAULT 0 AFTER `Float26`, - ADD `Float28` float NOT NULL DEFAULT 0 AFTER `Float27`, - ADD `Float29` float NOT NULL DEFAULT 0 AFTER `Float28`, - ADD `Float30` float NOT NULL DEFAULT 0 AFTER `Float29`, - ADD `Float31` float NOT NULL DEFAULT 0 AFTER `Float30`, - ADD `Float32` float NOT NULL DEFAULT 0 AFTER `Float31`, - ADD `Float33` float NOT NULL DEFAULT 0 AFTER `Float32`, - ADD `Float34` float NOT NULL DEFAULT 0 AFTER `Float33`, - ADD `Float35` float NOT NULL DEFAULT 0 AFTER `Float34`, - ADD `Float36` float NOT NULL DEFAULT 0 AFTER `Float35`, - ADD `Float37` float NOT NULL DEFAULT 0 AFTER `Float36`, - ADD `Float38` float NOT NULL DEFAULT 0 AFTER `Float37`; + ALTER TABLE `liquid_type` + ADD `Color3` int NOT NULL DEFAULT 0 AFTER `Color2`, + ADD `Float19` float NOT NULL DEFAULT 0 AFTER `Float18`, + ADD `Float20` float NOT NULL DEFAULT 0 AFTER `Float19`, + ADD `Float21` float NOT NULL DEFAULT 0 AFTER `Float20`, + ADD `Float22` float NOT NULL DEFAULT 0 AFTER `Float21`, + ADD `Float23` float NOT NULL DEFAULT 0 AFTER `Float22`, + ADD `Float24` float NOT NULL DEFAULT 0 AFTER `Float23`, + ADD `Float25` float NOT NULL DEFAULT 0 AFTER `Float24`, + ADD `Float26` float NOT NULL DEFAULT 0 AFTER `Float25`, + ADD `Float27` float NOT NULL DEFAULT 0 AFTER `Float26`, + ADD `Float28` float NOT NULL DEFAULT 0 AFTER `Float27`, + ADD `Float29` float NOT NULL DEFAULT 0 AFTER `Float28`, + ADD `Float30` float NOT NULL DEFAULT 0 AFTER `Float29`, + ADD `Float31` float NOT NULL DEFAULT 0 AFTER `Float30`, + ADD `Float32` float NOT NULL DEFAULT 0 AFTER `Float31`, + ADD `Float33` float NOT NULL DEFAULT 0 AFTER `Float32`, + ADD `Float34` float NOT NULL DEFAULT 0 AFTER `Float33`, + ADD `Float35` float NOT NULL DEFAULT 0 AFTER `Float34`, + ADD `Float36` float NOT NULL DEFAULT 0 AFTER `Float35`, + ADD `Float37` float NOT NULL DEFAULT 0 AFTER `Float36`, + ADD `Float38` float NOT NULL DEFAULT 0 AFTER `Float37`; -ALTER TABLE `map_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `map_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `override_spell_data` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `PlayerActionBarFileDataID`; + ALTER TABLE `override_spell_data` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `PlayerActionBarFileDataID`; -ALTER TABLE `player_condition` MODIFY `PowerTypeValue` tinyint NOT NULL DEFAULT 0 AFTER `PowerTypeComp`; + ALTER TABLE `player_condition` MODIFY `PowerTypeValue` tinyint NOT NULL DEFAULT 0 AFTER `PowerTypeComp`; -ALTER TABLE `scenario` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `AreaTableID`; + ALTER TABLE `scenario` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `AreaTableID`; -ALTER TABLE `scenario` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Type`; + ALTER TABLE `scenario` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Type`; -ALTER TABLE `scenario_step` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `OrderIndex`; + ALTER TABLE `scenario_step` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `OrderIndex`; -ALTER TABLE `scene_script_package` ADD `Flags` int NOT NULL DEFAULT 0 AFTER `Name`; + ALTER TABLE `scene_script_package` ADD `Flags` int NOT NULL DEFAULT 0 AFTER `Name`; -ALTER TABLE `spell_aura_options` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_aura_options` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_aura_restrictions` - MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, - MODIFY `CasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeTargetAuraSpell`, - MODIFY `TargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `CasterAuraType`, - MODIFY `ExcludeCasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `TargetAuraType`, - MODIFY `ExcludeTargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeCasterAuraType`; + ALTER TABLE `spell_aura_restrictions` + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, + MODIFY `CasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeTargetAuraSpell`, + MODIFY `TargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `CasterAuraType`, + MODIFY `ExcludeCasterAuraType` smallint NOT NULL DEFAULT 0 AFTER `TargetAuraType`, + MODIFY `ExcludeTargetAuraType` smallint NOT NULL DEFAULT 0 AFTER `ExcludeCasterAuraType`; -ALTER TABLE `spell_categories` - ADD `DiminishType` int NOT NULL DEFAULT 0 AFTER `DefenseType`, - MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, - MODIFY `DefenseType` tinyint NOT NULL DEFAULT 0 AFTER `Category`; + ALTER TABLE `spell_categories` + ADD `DiminishType` int NOT NULL DEFAULT 0 AFTER `DefenseType`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`, + MODIFY `DefenseType` tinyint NOT NULL DEFAULT 0 AFTER `Category`; -ALTER TABLE `spell_cooldowns` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_cooldowns` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_duration` ADD `DurationPerResource` int NOT NULL DEFAULT 0 AFTER `MaxDuration`; + ALTER TABLE `spell_duration` ADD `DurationPerResource` int NOT NULL DEFAULT 0 AFTER `MaxDuration`; -ALTER TABLE `spell_effect` - ADD `TargetNodeGraph` int NOT NULL DEFAULT 0 AFTER `ScalingClass`, - MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `EffectAura`; + ALTER TABLE `spell_effect` + ADD `TargetNodeGraph` int NOT NULL DEFAULT 0 AFTER `ScalingClass`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `EffectAura`; -ALTER TABLE `spell_interrupts` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_interrupts` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_levels` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_levels` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_misc` - ADD `Attributes17` int NOT NULL DEFAULT 0 AFTER `Attributes16`, - MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `Attributes17`; + ALTER TABLE `spell_misc` + ADD `Attributes17` int NOT NULL DEFAULT 0 AFTER `Attributes16`, + MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `Attributes17`; -ALTER TABLE `spell_power_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_power_difficulty` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_procs_per_minute` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BaseProcRate`; + ALTER TABLE `spell_procs_per_minute` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `BaseProcRate`; -ALTER TABLE `spell_procs_per_minute_mod` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_procs_per_minute_mod` MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_range` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `DisplayNameShort`; + ALTER TABLE `spell_range` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `DisplayNameShort`; -ALTER TABLE `spell_reagents_currency` - MODIFY `CurrencyTypesID` int NOT NULL DEFAULT 0 AFTER `SpellID`, - MODIFY `CurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyTypesID`, - ADD `OverrideRecraftCurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyCount`, - ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `OverrideRecraftCurrencyCount`; + ALTER TABLE `spell_reagents_currency` + MODIFY `CurrencyTypesID` int NOT NULL DEFAULT 0 AFTER `SpellID`, + MODIFY `CurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyTypesID`, + ADD `OverrideRecraftCurrencyCount` int NOT NULL DEFAULT 0 AFTER `CurrencyCount`, + ADD `OrderSource` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `OverrideRecraftCurrencyCount`; -ALTER TABLE `spell_scaling` DROP `ScalesFromItemLevel`; + ALTER TABLE `spell_scaling` DROP `ScalesFromItemLevel`; -ALTER TABLE `spell_target_restrictions` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_target_restrictions` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `spell_visual_effect_name` - MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Alpha`, - MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `EffectRadius`; + ALTER TABLE `spell_visual_effect_name` + MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `Alpha`, + MODIFY `Type` int NOT NULL DEFAULT 0 AFTER `EffectRadius`; -ALTER TABLE `spell_visual_missile` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `FollowGroundApproach`; + ALTER TABLE `spell_visual_missile` MODIFY `Flags` int NOT NULL DEFAULT 0 AFTER `FollowGroundApproach`; -ALTER TABLE `spell_x_spell_visual` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; + ALTER TABLE `spell_x_spell_visual` MODIFY `DifficultyID` smallint NOT NULL DEFAULT 0 AFTER `ID`; -ALTER TABLE `trait_edge` MODIFY `Type` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RightTraitNodeID`; + ALTER TABLE `trait_edge` MODIFY `Type` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RightTraitNodeID`; -ALTER TABLE `ui_map` DROP `VisibilityPlayerConditionID2`; + ALTER TABLE `ui_map` DROP `VisibilityPlayerConditionID2`; -DROP TABLE IF EXISTS `pvp_item`; + DROP TABLE IF EXISTS `pvp_item`; + END IF; +END;; + +DELIMITER ; +CALL hotfixes_2026_01_28_00(); + +DROP PROCEDURE IF EXISTS hotfixes_2026_01_28_00; diff --git a/sql/old/12.x/world/26011_2026_02_06/2026_01_28_00_world.sql b/sql/old/12.x/world/26011_2026_02_06/2026_01_28_00_world.sql index d88c9ddda5..21e1f0a6dd 100644 --- a/sql/old/12.x/world/26011_2026_02_06/2026_01_28_00_world.sql +++ b/sql/old/12.x/world/26011_2026_02_06/2026_01_28_00_world.sql @@ -1,14 +1,24 @@ -ALTER TABLE `access_requirement` MODIFY `difficulty` int NOT NULL DEFAULT 0; -ALTER TABLE `creature_questitem` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; -ALTER TABLE `creature_static_flags_override` MODIFY `DifficultyId` int NOT NULL DEFAULT 0; -ALTER TABLE `creature_template_difficulty` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; -ALTER TABLE `player_classlevelstats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; -ALTER TABLE `player_racestats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; -UPDATE `player_classlevelstats` SET `spi`=0; -UPDATE `player_racestats` SET `spi`=0; -ALTER TABLE `player_classlevelstats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; -ALTER TABLE `player_racestats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; -ALTER TABLE `quest_template` ADD `RewardFavor` int NOT NULL DEFAULT 0; -ALTER TABLE `quest_objectives` CHANGE `SecondaryAmount` `ConditionalAmount` int NOT NULL DEFAULT 0; -ALTER TABLE `scenarios` MODIFY `difficulty` int NOT NULL DEFAULT 0; -ALTER TABLE `serverside_spell` ADD `AttributesEx16` int UNSIGNED NOT NULL DEFAULT 0 AFTER `AttributesEx15`; +DELIMITER ;; +CREATE PROCEDURE world_2026_01_28_00() BEGIN + IF NOT EXISTS (SELECT * FROM `information_schema`.`columns` WHERE `table_schema`=SCHEMA() AND `table_name`='player_classlevelstats' AND `column_name`='spi') THEN + ALTER TABLE `access_requirement` MODIFY `difficulty` int NOT NULL DEFAULT 0; + ALTER TABLE `creature_questitem` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; + ALTER TABLE `creature_static_flags_override` MODIFY `DifficultyId` int NOT NULL DEFAULT 0; + ALTER TABLE `creature_template_difficulty` MODIFY `DifficultyID` int NOT NULL DEFAULT 0; + ALTER TABLE `player_classlevelstats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; + ALTER TABLE `player_racestats` ADD `spi` smallint COMMENT 'spirit' AFTER `inte`; + UPDATE `player_classlevelstats` SET `spi`=0; + UPDATE `player_racestats` SET `spi`=0; + ALTER TABLE `player_classlevelstats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; + ALTER TABLE `player_racestats` MODIFY `spi` smallint NOT NULL COMMENT 'spirit'; + ALTER TABLE `quest_template` ADD `RewardFavor` int NOT NULL DEFAULT 0; + ALTER TABLE `quest_objectives` CHANGE `SecondaryAmount` `ConditionalAmount` int NOT NULL DEFAULT 0; + ALTER TABLE `scenarios` MODIFY `difficulty` int NOT NULL DEFAULT 0; + ALTER TABLE `serverside_spell` ADD `AttributesEx16` int UNSIGNED NOT NULL DEFAULT 0 AFTER `AttributesEx15`; + END IF; +END;; + +DELIMITER ; +CALL world_2026_01_28_00(); + +DROP PROCEDURE IF EXISTS world_2026_01_28_00;