summaryrefslogtreecommitdiff
path: root/docs/database-squash.md
diff options
context:
space:
mode:
authorKargatum <dowlandtop@yandex.com>2022-01-29 02:09:47 +0700
committerGitHub <noreply@github.com>2022-01-28 20:09:47 +0100
commit60f73a650c966be0ae78c97333f2b6eabd1ff78f (patch)
tree89b985080958ab3ad69c6a7b81a91a2c28db0d46 /docs/database-squash.md
parent6e17c3a99e93119731e2009e62e9bdd9b9727e44 (diff)
downloadwiki-60f73a650c966be0ae78c97333f2b6eabd1ff78f.tar.gz
wiki-60f73a650c966be0ae78c97333f2b6eabd1ff78f.tar.bz2
wiki-60f73a650c966be0ae78c97333f2b6eabd1ff78f.zip
chore: database-squash.md (#640)
* Update database-squash.md * Update database-squash.md * Update docs/database-squash.md * Update database-squash.md
Diffstat (limited to 'docs/database-squash.md')
-rw-r--r--docs/database-squash.md46
1 files changed, 27 insertions, 19 deletions
diff --git a/docs/database-squash.md b/docs/database-squash.md
index 69da81a..4a221f2 100644
--- a/docs/database-squash.md
+++ b/docs/database-squash.md
@@ -42,37 +42,45 @@ There is no fixed timetable. We typically do it once every 1 or 2 years, however
## How to do it (for project maintainers)
-During this process NO ONE should push anything to the master branch.
-
-1) **Commit** a new release by modifying the version in `acore.json` and in the `version` table of the DB world, removing `dev` [(example)](https://github.com/azerothcore/azerothcore-wotlk/commit/2742a2ed37bec33544ca496b883ed50d6a50693e)
-
-2) Wait that the pending update file fromt the previous commit is been processed by the bot [(example)](https://github.com/azerothcore/azerothcore-wotlk/commit/1fc22a74088e235e78fa02decbaf0864899477d7).
+1) Wait that the any existing pending update file is been processed by the bot [(example)](https://github.com/azerothcore/azerothcore-wotlk/commit/d9449c7a9954c3b973153dc5bf06a441c9036cb4).
Now draft a new release on GitHub. **NOTE**: this will be the "release commit".
-3) Now pull and update your local DB to the latest version. **IMPORTANT: Make sure your DB is perfectly clean.**
+2) Now pull and update your local DB to the latest version. **IMPORTANT: Make sure your DB is perfectly clean.**
It's better to destroy it and install a fresh one at this point. Do **NOT** commit anything until specified.
-4) Do the actual squash action, by using the script located at `bin/acore-db-export`. This will basically backup your DBs into the base files.
+3) Do the actual squash action, by using the script located at `bin/acore-db-export`. This will basically backup your DBs into the base files.
+
+4) Move the `data/sql/updates/db_*` folders under a new folder inside `data/sql/archive/db_*` having the name of the release (e.g. 2.x)
-5) Move the ` data/sql/updates/db_*` folders under a new folder inside `data/sql/archive` having the name of the release (e.g. 2.x)
+5) Start a new development version by modifying the version in `acore.json` and in the `version` table of the DB world, adding the `dev` suffix to the next version
-6) Start a new development version by modifying the version in `acore.json` and in the `version` table of the DB world, adding the `dev` suffix to the next version
+6) Need set all updates state to `ARCHIVED`. Create new `.sql` file (**WITH** pending system) in `./data/sql/updates/pending_db_*`. For `db_world` need update `db_version` and `cache_id`.
-7) Commit the changes from steps 4-6 together [(example)](https://github.com/azerothcore/azerothcore-wotlk/commit/0858526c9a678e90ffa830182c25434b36fee2c5)
+Example for `auth`:
+```sql
+-- ACDB 335.5-dev auth
+UPDATE `updates` SET `state`='ARCHIVED';
+```
-8) Fix the SQL chain: https://github.com/azerothcore/azerothcore-wotlk/commit/3cdc5a45a184341536465df4c25ee4e85ec250fd
+Example for `characters`:
+```sql
+-- ACDB 335.5-dev characters
+UPDATE `updates` SET `state`='ARCHIVED';
+```
-9) Announce to the users that a new release is available so they have to update their DBs following a special procedure (see below)
+Example for `world`:
+```sql
+-- ACDB 335.5-dev world
+UPDATE `version` SET `db_version`='ACDB 335.5-dev', `cache_id`=5 LIMIT 1;
+UPDATE `updates` SET `state`='ARCHIVED';
+```
## How to update an existing server from a previous release
The existing servers will have to:
- `git pull`
-- Checkout the release commit (`git checkout COMMIT_HASH`)
-- Update their DB following the standard procedure
-- Checkout the latest master version (`git pull` again)
-- Update their DB following the standard procedure (yes, again)
-
-Example: [Upgrade-from-pre-2.0.0-to-latest-master](https://www.azerothcore.org/wiki/Upgrade-from-pre-2.0.0-to-latest-master)
-
+- In config files (`authserver.conf` and `worldserver.conf`) just set `Updates.EnableDatabases` for all DB.
+- These options are already enabled by default, you do not need to do anything if you have not touched them
+- For `worldserver.conf` - `Updates.EnableDatabases = 7`
+- For `authserver.conf` - `Updates.EnableDatabases = 1`