mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 10:31:29 +00:00
Fix regression deleting expedition from db
Set expedition's instance id NULL instead of deleting it from the database when instances are deleted. Only expedition functions should delete expeditions This fixes a regression caused by removing foreign key constraints The expedition_details row was being deleted and not the corresponding expedition_members and expedition_lockouts rows. Any characters inside the members table could no longer join expeditions
This commit is contained in:
parent
cb4a117503
commit
15235d77f7
@ -496,7 +496,7 @@ void Database::DeleteInstance(uint16 instance_id)
|
||||
query = fmt::format("DELETE FROM dynamic_zones WHERE instance_id={}", instance_id);
|
||||
QueryDatabase(query);
|
||||
|
||||
query = fmt::format("DELETE FROM expedition_details WHERE instance_id={}", instance_id);
|
||||
query = fmt::format("UPDATE expedition_details SET instance_id = NULL WHERE instance_id={}", instance_id);
|
||||
QueryDatabase(query);
|
||||
|
||||
BuryCorpsesInInstance(instance_id);
|
||||
@ -589,7 +589,7 @@ void Database::PurgeExpiredInstances()
|
||||
QueryDatabase(fmt::format("DELETE FROM spawn_condition_values WHERE instance_id IN ({})", imploded_instance_ids));
|
||||
QueryDatabase(fmt::format("UPDATE character_corpses SET is_buried = 1, instance_id = 0 WHERE instance_id IN ({})", imploded_instance_ids));
|
||||
QueryDatabase(fmt::format("DELETE FROM dynamic_zones WHERE instance_id IN ({})", imploded_instance_ids));
|
||||
QueryDatabase(fmt::format("DELETE FROM expedition_details WHERE instance_id IN ({})", imploded_instance_ids));
|
||||
QueryDatabase(fmt::format("UPDATE expedition_details SET instance_id = NULL WHERE instance_id IN ({})", imploded_instance_ids));
|
||||
}
|
||||
|
||||
void Database::SetInstanceDuration(uint16 instance_id, uint32 new_duration)
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
CREATE TABLE `expedition_details` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`uuid` VARCHAR(36) NOT NULL,
|
||||
`instance_id` INT(10) NOT NULL,
|
||||
`instance_id` INT(10) NULL DEFAULT 0,
|
||||
`expedition_name` VARCHAR(128) NOT NULL,
|
||||
`leader_id` INT(10) UNSIGNED NOT NULL DEFAULT 0,
|
||||
`min_players` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user