1.5 KiB
1.5 KiB
SQL guidelines
Adding SQL updates
cd data/sql/updates/pending_db_world/(orpending_db_auth/pending_db_characters)../create_sql.shgenerates an emptyrev_<timestamp>.sqlto write into.- Conventions (linted): every
INSERTpreceded by a matchingDELETE(idempotency); no double semicolons; no multiple blank lines; InnoDB engine.
Run the linter before claiming a change is done: python apps/codestyle/codestyle-sql.py (compares to origin/master).
Data conventions
smart_scriptsedits always rewrite the full block —DELETE+INSERTof every row for the(entryorguid, source_type)pair, with theDELETEmatching both columns — never a partialUPDATE, not even for a comment-only fix.creature_immunities: negative ids are curated shared sets — reference them viacreature_template.CreatureImmunitiesId, never edit them or allocate new ones. Positive ids are single-creature sets — reuse an existing set only on an exact match; to extend a creature's immunities, insert a superset under a new id and point the creature'sCreatureImmunitiesIdat it.
The three databases
acore_auth— accounts, realm list, IP/account bans, session keys. Shared across all realms.acore_characters— per-character state: characters, inventory, in-progress quests, mail, guilds, arena teams, achievements. One per realm.acore_world— static game content: creature/gameobject/item/quest templates, spawn lists, loot tables, SmartAI scripts, gossip, conditions. Read-mostly; rebuilt from SQL.