diff --git a/config.lua.dist b/config.lua.dist index 1aecf0f7b77..90063522221 100644 --- a/config.lua.dist +++ b/config.lua.dist @@ -22,10 +22,10 @@ toggleMaintainMode = false maintainModeMessage = "" -- Combat settings +-- NOTE: World id is 1 as default, new worlds must have different ids always greater than 1 -- NOTE: valid values for worldType are: "pvp", "no-pvp" and "pvp-enforced" -- NOTE: removeBeginningWeaponAmmunition: spears, arrows, bolt have endless ammo (allows training for paladins) -- NOTE: refundManaOnBeginningWeapons: wand of vortex and snakebite refund mana used (allows training for mages) --- NOTE: World id is 1 as default, new worlds must have different ids. worldId = 1 worldType = "pvp" hotkeyAimbotEnabled = true diff --git a/data-otservbr-global/migrations/46.lua b/data-otservbr-global/migrations/46.lua index 7605ec6d6ea..030ec40135a 100644 --- a/data-otservbr-global/migrations/46.lua +++ b/data-otservbr-global/migrations/46.lua @@ -16,6 +16,8 @@ function onUpdateDatabase() ]]) db.query("ALTER TABLE `server_config` ADD `worldId` int(3) UNSIGNED NOT NULL DEFAULT 1;") + db.query("ALTER TABLE `server_config` DROP PRIMARY KEY;") + db.query("ALTER TABLE `server_config` ADD PRIMARY KEY (`config`, `worldId`);") db.query("ALTER TABLE `server_config` ADD FOREIGN KEY (`worldId`) REFERENCES `worlds` (`id`) ON DELETE CASCADE;") db.query("ALTER TABLE `players_online` ADD `worldId` int(3) UNSIGNED NOT NULL DEFAULT 1;") diff --git a/src/database/databasemanager.cpp b/src/database/databasemanager.cpp index d133ead5f05..2fa028cfa12 100644 --- a/src/database/databasemanager.cpp +++ b/src/database/databasemanager.cpp @@ -62,7 +62,7 @@ bool DatabaseManager::isDatabaseSetup() { int32_t DatabaseManager::getDatabaseVersion() { if (!tableExists("server_config")) { Database &db = Database::getInstance(); - db.executeQuery("CREATE TABLE `server_config` (`worldId` INT(11) NOT NULL DEFAULT '0', `config` VARCHAR(50) NOT NULL, `value` VARCHAR(256) NOT NULL DEFAULT '', UNIQUE(`config`)) ENGINE = InnoDB"); + db.executeQuery("CREATE TABLE `server_config` (`config` VARCHAR(50) NOT NULL, `value` VARCHAR(256) NOT NULL DEFAULT '', `worldId` INT(11) NOT NULL DEFAULT '1', UNIQUE(`config`, `worldId`)) ENGINE = InnoDB"); db.executeQuery(fmt::format("INSERT INTO `server_config` (`config`, `value`) VALUES ('db_version', 0)")); return 0; }