forked from opentibiabr/canary
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into feature/rotten-blood
- Loading branch information
Showing
110 changed files
with
2,814 additions
and
1,744 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Database Migration System | ||
|
||
This document provides an overview of the current database migration system for the project. The migration process has been streamlined to ensure that all migration scripts are automatically applied in order, making it easier to maintain database updates. | ||
|
||
## How It Works | ||
|
||
The migration system is designed to apply updates to the database schema or data whenever a new server version is started. Migration scripts are stored in the `migrations` directory, and the system will automatically apply any scripts that have not yet been executed. | ||
|
||
### Steps Involved | ||
|
||
1. **Retrieve Current Database Version**: | ||
- The system first retrieves the current version of the database using `getDatabaseVersion()`. | ||
- This version is used to determine which migration scripts need to be executed. | ||
|
||
2. **Migration Files Directory**: | ||
- All migration scripts are stored in the `migrations` directory. | ||
- Each migration script is named using a numerical pattern, such as `1.lua`, `2.lua`, etc. | ||
- The naming convention helps determine the order in which scripts should be applied. | ||
|
||
3. **Execute Migration Scripts**: | ||
- The migration system iterates through the migration directory and applies each migration script that has a version greater than the current database version. | ||
- Only scripts that have not been applied are executed. | ||
- The Lua state (`lua_State* L`) is initialized to run each script. | ||
|
||
4. **Update Database Version**: | ||
- After each migration script is successfully applied, the system updates the database version to reflect the applied change. | ||
- This ensures that the script is not re-applied on subsequent server startups. | ||
|
||
## Example Migration Script | ||
|
||
Below is an example of what a migration script might look like. Note that no return value is required, as all migration files are applied based on the current database version. | ||
|
||
```lua | ||
-- Migration script example (for documentation purposes only) | ||
-- This migration script should include all necessary SQL commands or operations to apply a specific update to the database. | ||
|
||
-- Example: Adding a new column to the "players" table | ||
local query = [[ | ||
ALTER TABLE players ADD COLUMN new_feature_flag TINYINT(1) NOT NULL DEFAULT 0; | ||
]] | ||
|
||
-- Execute the query | ||
db.execute(query) -- This function executes the given SQL query on the database. | ||
|
||
-- Note: Ensure that queries are validated to avoid errors during the migration process. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,13 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 2 (hireling)") | ||
|
||
db.query([[ | ||
CREATE TABLE IF NOT EXISTS `player_hirelings` ( | ||
`id` INT NOT NULL PRIMARY KEY auto_increment, | ||
`player_id` INT NOT NULL, | ||
`name` varchar(255), | ||
`active` tinyint unsigned NOT NULL DEFAULT '0', | ||
`sex` tinyint unsigned NOT NULL DEFAULT '0', | ||
`posx` int(11) NOT NULL DEFAULT '0', | ||
`posy` int(11) NOT NULL DEFAULT '0', | ||
`posz` int(11) NOT NULL DEFAULT '0', | ||
`lookbody` int(11) NOT NULL DEFAULT '0', | ||
`lookfeet` int(11) NOT NULL DEFAULT '0', | ||
`lookhead` int(11) NOT NULL DEFAULT '0', | ||
`looklegs` int(11) NOT NULL DEFAULT '0', | ||
`looktype` int(11) NOT NULL DEFAULT '136', | ||
FOREIGN KEY(`player_id`) REFERENCES `players`(`id`) | ||
ON DELETE CASCADE | ||
) | ||
]]) | ||
|
||
return true | ||
logger.info("Updating database to version 1 (sample players)") | ||
-- Rook Sample | ||
db.query("UPDATE `players` SET `level` = 2, `vocation` = 0, `health` = 155, `healthmax` = 155, `experience` = 100, `soul` = 100, `lookbody` = 113, `lookfeet` = 115, `lookhead` = 95, `looklegs` = 39, `looktype` = 129, `mana` = 60, `manamax` = 60, `town_id` = 1, `cap` = 410 WHERE `id` = 1;") | ||
-- Sorcerer Sample | ||
db.query("UPDATE `players` SET `level` = 8, `vocation` = 1, `health` = 185, `healthmax` = 185, `experience` = 4200, `soul` = 100, `lookbody` = 113, `lookfeet` = 115, `lookhead` = 95, `looklegs` = 39, `looktype` = 129, `mana` = 90, `manamax` = 90, `town_id` = 8, `cap` = 470 WHERE `id` = 2;") | ||
-- Druid Sample | ||
db.query("UPDATE `players` SET `level` = 8, `vocation` = 2, `health` = 185, `healthmax` = 185, `experience` = 4200, `soul` = 100, `lookbody` = 113, `lookfeet` = 115, `lookhead` = 95, `looklegs` = 39, `looktype` = 129, `mana` = 90, `manamax` = 90, `town_id` = 8, `cap` = 470 WHERE `id` = 3;") | ||
-- Paladin Sample | ||
db.query("UPDATE `players` SET `level` = 8, `vocation` = 3, `health` = 185, `healthmax` = 185, `experience` = 4200, `soul` = 100, `lookbody` = 113, `lookfeet` = 115, `lookhead` = 95, `looklegs` = 39, `looktype` = 129, `mana` = 90, `manamax` = 90, `town_id` = 8, `cap` = 470 WHERE `id` = 4;") | ||
-- Knight Sample | ||
db.query("UPDATE `players` SET `level` = 8, `vocation` = 4, `health` = 185, `healthmax` = 185, `experience` = 4200, `soul` = 100, `lookbody` = 113, `lookfeet` = 115, `lookhead` = 95, `looklegs` = 39, `looktype` = 129, `mana` = 90, `manamax` = 90, `town_id` = 8, `cap` = 470 WHERE `id` = 5;") | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 11 (Guilds Balance)") | ||
logger.info("Updating database to version 10 (Guilds Balance)") | ||
db.query("ALTER TABLE `guilds` ADD `balance` bigint(20) UNSIGNED NOT NULL DEFAULT '0';") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 12 (Player get daily reward)") | ||
logger.info("Updating database to version 11 (Player get daily reward)") | ||
db.query("ALTER TABLE `players` ADD `isreward` tinyint(1) NOT NULL DEFAULT 1") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,10 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 13 (Boosted Creature Outfit)") | ||
logger.info("Updating database to version 12 (Boosted Creature Outfit)") | ||
db.query("ALTER TABLE boosted_creature ADD `looktype` int(11) NOT NULL DEFAULT 136;") | ||
db.query("ALTER TABLE boosted_creature ADD `lookfeet` int(11) NOT NULL DEFAULT 0;") | ||
db.query("ALTER TABLE boosted_creature ADD `looklegs` int(11) NOT NULL DEFAULT 0;") | ||
db.query("ALTER TABLE boosted_creature ADD `lookhead` int(11) NOT NULL DEFAULT 0;") | ||
db.query("ALTER TABLE boosted_creature ADD `lookbody` int(11) NOT NULL DEFAULT 0;") | ||
db.query("ALTER TABLE boosted_creature ADD `lookaddons` int(11) NOT NULL DEFAULT 0;") | ||
db.query("ALTER TABLE boosted_creature ADD `lookmount` int(11) DEFAULT 0;") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 14 (Fixed mana spent)") | ||
logger.info("Updating database to version 13 (Fixed mana spent)") | ||
db.query("ALTER TABLE `players` CHANGE `manaspent` `manaspent` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 15 (Magic Shield Spell)") | ||
logger.info("Updating database to version 14 (Magic Shield Spell)") | ||
db.query("ALTER TABLE `players` ADD `manashield` SMALLINT UNSIGNED NOT NULL DEFAULT '0' AFTER `skill_manaleech_amount`") | ||
db.query("ALTER TABLE `players` ADD `max_manashield` SMALLINT UNSIGNED NOT NULL DEFAULT '0' AFTER `manashield`") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 16 (Rook sample and GOD player values)") | ||
logger.info("Updating database to version 15 (Rook sample and GOD player values)") | ||
-- Rook Sample | ||
db.query("UPDATE `players` SET `maglevel` = 2, `manaspent` = 5936, `skill_club` = 12, `skill_club_tries` = 155, `skill_sword` = 12, `skill_sword_tries` = 155, `skill_axe` = 12, `skill_axe_tries` = 155, `skill_dist` = 12, `skill_dist_tries` = 93 WHERE `id` = 1;") | ||
-- GOD | ||
db.query("UPDATE `players` SET `health` = 155, `healthmax` = 155, `experience` = 100, `looktype` = 75, `town_id` = 8 WHERE `id` = 6;") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
function onUpdateDatabase() | ||
print("Updating database to version 17 (Tutorial support)") | ||
print("Updating database to version 16 (Tutorial support)") | ||
db.query("ALTER TABLE `players` ADD `istutorial` SMALLINT(1) NOT NULL DEFAULT '0'") | ||
return true -- true = There are others migrations file | false = this is the last migration file | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 18 (Fix guild creation myaac)") | ||
logger.info("Updating database to version 17 (Fix guild creation myaac)") | ||
db.query("ALTER TABLE `guilds` ADD `level` int(11) NOT NULL DEFAULT 1") | ||
db.query("ALTER TABLE `guilds` ADD `points` int(11) NOT NULL DEFAULT 0") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,7 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 20 (Gamestore accepting Tournament Coins)") | ||
logger.info("Updating database to version 19 (Gamestore accepting Tournament Coins)") | ||
|
||
db.query("ALTER TABLE `accounts` ADD `tournament_coins` int(11) NOT NULL DEFAULT 0 AFTER `coins`") | ||
db.query("ALTER TABLE `store_history` ADD `coin_type` tinyint(1) NOT NULL DEFAULT 0 AFTER `description`") | ||
db.query("ALTER TABLE `store_history` DROP COLUMN `coins`") -- Not in use anywhere. | ||
|
||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,5 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 21 (Fix market price size)") | ||
logger.info("Updating database to version 20 (Fix market price size)") | ||
db.query("ALTER TABLE `market_history` CHANGE `price` `price` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';") | ||
db.query("ALTER TABLE `market_offers` CHANGE `price` `price` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0';") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 22 (forge and tier system)") | ||
logger.info("Updating database to version 21 (forge and tier system)") | ||
db.query("ALTER TABLE `market_offers` ADD `tier` tinyint UNSIGNED NOT NULL DEFAULT '0';") | ||
db.query("ALTER TABLE `market_history` ADD `tier` tinyint UNSIGNED NOT NULL DEFAULT '0';") | ||
db.query("ALTER TABLE `players` ADD `forge_dusts` bigint(21) NOT NULL DEFAULT '0';") | ||
db.query("ALTER TABLE `players` ADD `forge_dust_level` bigint(21) UNSIGNED NOT NULL DEFAULT '100';") | ||
return true | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
function onUpdateDatabase() | ||
logger.info("Updating database to version 23 (fix offline training skill size)") | ||
logger.info("Updating database to version 22 (fix offline training skill size)") | ||
db.query([[ | ||
ALTER TABLE `players` | ||
MODIFY offlinetraining_skill tinyint(2) NOT NULL DEFAULT '-1'; | ||
]]) | ||
return true | ||
end |
Oops, something went wrong.