mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
feat(DB): New DB exporter and versioning tools for DB squashes (#20920)
This commit is contained in:
@@ -1,42 +1,31 @@
|
||||
New routines around handling database squashes since https://github.com/azerothcore/azerothcore-wotlk/pull/18197
|
||||
New process around handling database squashes since https://github.com/azerothcore/azerothcore-wotlk/pull/18197
|
||||
|
||||
> [!CAUTION]
|
||||
> These steps are only for project maintainers who intend to update base files.
|
||||
|
||||
During the DB squash procedure, we do NOT move files.
|
||||
The archive dir is NO longer used as part of the DB squash procedure,
|
||||
but simply as a place where to move update files when they get too many.
|
||||
|
||||
Moving files to the archive folder is NOT part of the squash procedure anymore.
|
||||
|
||||
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.
|
||||
|
||||
1. Update the acore.json file. Increment version by one
|
||||
2. Create a new file in the updates/db_world/ dir, the file should be incremented containing
|
||||
1. Update the acore.json and DB version by running VersionUpdater.ps1 (Located in ..\apps\VersionUpdater\)
|
||||
|
||||
> [!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
|
||||
> Read the versionupdater.md file to use it properly.
|
||||
|
||||
2. Drop all your databases, and run Worldserver to populate a clean database.
|
||||
3. Export the databases using the DatabaseExporter.ps1 (Located in ..\apps\DatabaseExporter\)
|
||||
|
||||
```sql
|
||||
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
|
||||
> Read the databaseexporter.md file to use it properly.
|
||||
|
||||
4. Drop all your databases, and run Worldserver to populate a clean database.
|
||||
5. Export the databases using i.e HeidiSQL
|
||||
6. Make a PR
|
||||
|
||||
> [!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.
|
||||
> No DB PRs should be merged during this process!
|
||||
|
||||
6. Move the exported table files into the base directory to update the existing files.
|
||||
7. Make a PR
|
||||
> [!NOTE]
|
||||
> During the DB squash procedure, we do NOT move files.
|
||||
> The archive dir is NO longer used as part of the DB squash procedure,
|
||||
> but simply as a place where to move update files when they get too many
|
||||
> 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.
|
||||
|
||||
Reference in New Issue
Block a user