Database Squash
Introduction
We do this to update the base files so that a clean install of the server is done quicker and all update files are not needed to be run, as they will already exist in the base files.
How to
Warning: These steps are only for project maintainers who intend to update base files.
Important: No SQL changes should be merged during the Base Squash.
We ONLY squash into BASE files. We never move files.
ARCHIVE dir is UNUSED.
All update files ALWAYS exist in the updates dir.
as the updates
table in base files always will contain the entries from the updates dir they will never be run again on a clean setup.
How to do the squash.
Important: A squash needs to be done on a clean database. Drop all tables in Auth, Characters and World.
- Update the acore.json file. Increment version by one
- Create a new file in the updates/db_world/ dir, the file should be incremented containing
Note: It should NOT be placed as a pending update and should only be done on world db. This is because we want the updated DB version to follow into the base files
UPDATE `version` SET `db_version`='ACDB 335.11-dev', `cache_id`=11 LIMIT 1;
Note: Remember to increment the db_version and cache_id the same as acore.json
- Drop all your databases, and run Worldserver to populate a clean database.
- Export the databases using i.e HeidiSQL
Important: Set the following values
> Tables -> DROP + CREATE
> Data -> Delete + insert (truncate existing data)
> Max INSERT size -> 1024
This is so that no unexpected issues occur.
- Move the exported table files into the base directory to update the existing files.
- Make a PR
Important: See https://github.com/azerothcore/azerothcore-wotlk/pull/18197 as a reference how to squash into Base files.