DB: Make some updates possible to rerun

This commit is contained in:
Shauren
2026-02-07 16:26:25 +01:00
parent 03d05f2cfe
commit f59ff04a3a
4 changed files with 164 additions and 134 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;