mirror of
https://github.com/WiIIiam278/HuskSync.git
synced 2025-12-22 08:09:20 +00:00
* Better maps syncing (#2) * Do not create new views for maps from current world * Fix maps in shulkers not converting * Add bundle support for map conversion * Rework map sync * Fix empty statements in database * Fix missing imports * Rename connectMapIds -> bindMapIds * Use data adapter to save maps * Split Mongo readMapData * Split MySQL readMapData * Split Postgres readMapData * Update database schemas Use server names instead of world UUIDs * Update Database class * Update MongoDbDatabase class * Update MySqlDatabase class * Update PostgresDatabase class * Update BukkitMapPersister class Use server names instead of world UUIDs * Remove unused code * Add my nickname to contributors :) * Start implementing Redis map caching * Continue implementing Redis map caching * Bind map ids on Redis before writing to DB * Finish implementing Redis map data caching * refactor: decouple new map logic Redis caching from DB * test: enable debug logging in test suite * docs: update docs with new username method * feat: adjust a method name --------- Co-authored-by: Sóla Lusøt <60041069+solaluset@users.noreply.github.com>
52 lines
1.7 KiB
SQL
52 lines
1.7 KiB
SQL
# Set the storage engine
|
|
SET DEFAULT_STORAGE_ENGINE = INNODB;
|
|
|
|
# Enable foreign key constraints
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
|
|
# Create the users table if it does not exist
|
|
CREATE TABLE IF NOT EXISTS `%users_table%`
|
|
(
|
|
`uuid` char(36) NOT NULL UNIQUE,
|
|
`username` varchar(16) NOT NULL,
|
|
|
|
PRIMARY KEY (`uuid`)
|
|
) CHARACTER SET utf8
|
|
COLLATE utf8_unicode_ci;
|
|
|
|
# Create the user data table if it does not exist
|
|
CREATE TABLE IF NOT EXISTS `%user_data_table%`
|
|
(
|
|
`version_uuid` char(36) NOT NULL UNIQUE,
|
|
`player_uuid` char(36) NOT NULL,
|
|
`timestamp` datetime NOT NULL,
|
|
`save_cause` varchar(32) NOT NULL,
|
|
`pinned` boolean NOT NULL DEFAULT FALSE,
|
|
`data` longblob NOT NULL,
|
|
PRIMARY KEY (`version_uuid`, `player_uuid`),
|
|
FOREIGN KEY (`player_uuid`) REFERENCES `%users_table%` (`uuid`) ON DELETE CASCADE
|
|
) CHARACTER SET utf8
|
|
COLLATE utf8_unicode_ci;
|
|
|
|
# Create the map data table if it does not exist
|
|
CREATE TABLE IF NOT EXISTS `%map_data_table%`
|
|
(
|
|
`server_name` varchar(32) NOT NULL,
|
|
`map_id` int NOT NULL,
|
|
`data` longblob NOT NULL,
|
|
PRIMARY KEY (`server_name`, `map_id`)
|
|
) CHARACTER SET utf8
|
|
COLLATE utf8_unicode_ci;
|
|
|
|
# Create the map ids table if it does not exist
|
|
CREATE TABLE IF NOT EXISTS `%map_ids_table%`
|
|
(
|
|
`from_server_name` varchar(32) NOT NULL,
|
|
`from_id` int NOT NULL,
|
|
`to_server_name` varchar(32) NOT NULL,
|
|
`to_id` int NOT NULL,
|
|
PRIMARY KEY (`from_server_name`, `from_id`, `to_server_name`),
|
|
FOREIGN KEY (`from_server_name`, `from_id`) REFERENCES `%map_data_table%` (`server_name`, `map_id`) ON DELETE CASCADE
|
|
) CHARACTER SET utf8
|
|
COLLATE utf8_unicode_ci;
|