mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 18:52:22 +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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user