mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-23 15:58:08 +00:00
Start moving migration stuff!
This commit is contained in:
152
migrations/dlu/mysql/0_initial.sql
Normal file
152
migrations/dlu/mysql/0_initial.sql
Normal file
@@ -0,0 +1,152 @@
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(35) NOT NULL UNIQUE,
|
||||
password TEXT NOT NULL,
|
||||
gm_level INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
locked BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
banned BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
play_key_id INT NOT NULL DEFAULT 0,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
mute_expire BIGINT UNSIGNED NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS charinfo (
|
||||
id BIGINT NOT NULL PRIMARY KEY,
|
||||
account_id INT NOT NULL REFERENCES accounts(id),
|
||||
name VARCHAR(35) NOT NULL,
|
||||
pending_name VARCHAR(35) NOT NULL,
|
||||
needs_rename BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
prop_clone_id BIGINT UNSIGNED AUTO_INCREMENT UNIQUE,
|
||||
last_login BIGINT UNSIGNED NOT NULL DEFAULT 0,
|
||||
permission_map BIGINT UNSIGNED NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS charxml (
|
||||
id BIGINT NOT NULL PRIMARY KEY REFERENCES charinfo(id),
|
||||
xml_data LONGTEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS command_log (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
command VARCHAR(256) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS friends (
|
||||
player_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
friend_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
best_friend BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
|
||||
PRIMARY KEY (player_id, friend_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS leaderboard (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
game_id INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
last_played TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
time BIGINT UNSIGNED NOT NULL,
|
||||
score BIGINT UNSIGNED NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mail (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
sender_id INT NOT NULL DEFAULT 0,
|
||||
sender_name VARCHAR(35) NOT NULL DEFAULT '',
|
||||
receiver_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
receiver_name VARCHAR(35) NOT NULL,
|
||||
time_sent BIGINT UNSIGNED NOT NULL,
|
||||
subject TEXT NOT NULL,
|
||||
body TEXT NOT NULL,
|
||||
attachment_id BIGINT NOT NULL DEFAULT 0,
|
||||
attachment_lot INT NOT NULL DEFAULT 0,
|
||||
attachment_subkey BIGINT NOT NULL DEFAULT 0,
|
||||
attachment_count INT NOT NULL DEFAULT 0,
|
||||
was_read BOOLEAN NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS object_id_tracker (
|
||||
last_object_id BIGINT UNSIGNED NOT NULL DEFAULT 0 PRIMARY KEY
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS pet_names (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
pet_name TEXT NOT NULL,
|
||||
approved INT UNSIGNED NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS play_keys (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
key_string CHAR(19) NOT NULL UNIQUE,
|
||||
key_uses INT NOT NULL DEFAULT 1,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
active BOOLEAN NOT NULL DEFAULT TRUE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS properties (
|
||||
id BIGINT NOT NULL PRIMARY KEY,
|
||||
owner_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
template_id INT UNSIGNED NOT NULL,
|
||||
clone_id BIGINT UNSIGNED REFERENCES charinfo(prop_clone_id),
|
||||
name TEXT NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
rent_amount INT NOT NULL,
|
||||
rent_due BIGINT NOT NULL,
|
||||
privacy_option INT NOT NULL,
|
||||
mod_approved BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
last_updated BIGINT NOT NULL,
|
||||
time_claimed BIGINT NOT NULL,
|
||||
rejection_reason TEXT NOT NULL,
|
||||
reputation BIGINT UNSIGNED NOT NULL,
|
||||
zone_id INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ugc (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
account_id INT NOT NULL REFERENCES accounts(id),
|
||||
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
is_optimized BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
lxfml MEDIUMBLOB NOT NULL,
|
||||
bake_ao BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
filename TEXT NOT NULL DEFAULT ('')
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS properties_contents (
|
||||
id BIGINT NOT NULL PRIMARY KEY,
|
||||
property_id BIGINT NOT NULL REFERENCES properties(id),
|
||||
ugc_id INT NULL REFERENCES ugc(id),
|
||||
lot INT NOT NULL,
|
||||
x FLOAT NOT NULL,
|
||||
y FLOAT NOT NULL,
|
||||
z FLOAT NOT NULL,
|
||||
rx FLOAT NOT NULL,
|
||||
ry FLOAT NOT NULL,
|
||||
rz FLOAT NOT NULL,
|
||||
rw FLOAT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS activity_log (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
character_id BIGINT NOT NULL REFERENCES charinfo(id),
|
||||
activity INT NOT NULL,
|
||||
time BIGINT UNSIGNED NOT NULL,
|
||||
map_id INT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS bug_reports (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
body TEXT NOT NULL,
|
||||
client_version TEXT NOT NULL,
|
||||
other_player_id TEXT NOT NULL,
|
||||
selection TEXT NOT NULL,
|
||||
submitted TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS servers (
|
||||
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
ip TEXT NOT NULL,
|
||||
port INT NOT NULL,
|
||||
state INT NOT NULL,
|
||||
version INT NOT NULL DEFAULT 0
|
||||
);
|
8
migrations/dlu/mysql/10_Security_updates.sql
Normal file
8
migrations/dlu/mysql/10_Security_updates.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
CREATE TABLE IF NOT EXISTS player_cheat_detections (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
account_id INT REFERENCES accounts(id),
|
||||
name TEXT REFERENCES charinfo(name),
|
||||
violation_msg TEXT NOT NULL,
|
||||
violation_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
violation_system_address TEXT NOT NULL
|
||||
);
|
9
migrations/dlu/mysql/11_fix_cheat_detection_table.sql
Normal file
9
migrations/dlu/mysql/11_fix_cheat_detection_table.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
DROP TABLE IF EXISTS `player_cheat_detections`;
|
||||
CREATE TABLE IF NOT EXISTS player_cheat_detections (
|
||||
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
account_id INT REFERENCES accounts(id),
|
||||
name TEXT NOT NULL,
|
||||
violation_msg TEXT NOT NULL,
|
||||
violation_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
|
||||
violation_system_address TEXT NOT NULL
|
||||
);
|
1
migrations/dlu/mysql/1_unique_charinfo_names.sql
Normal file
1
migrations/dlu/mysql/1_unique_charinfo_names.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE charinfo ADD UNIQUE (name);
|
1
migrations/dlu/mysql/2_reporter_id.sql
Normal file
1
migrations/dlu/mysql/2_reporter_id.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE bug_reports ADD reporter_id INT NOT NULL DEFAULT 0;
|
1
migrations/dlu/mysql/3_add_performance_cost.sql
Normal file
1
migrations/dlu/mysql/3_add_performance_cost.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE properties ADD COLUMN performance_cost DOUBLE(20, 15) DEFAULT 0.0;
|
1
migrations/dlu/mysql/4_friends_list_objectids.sql
Normal file
1
migrations/dlu/mysql/4_friends_list_objectids.sql
Normal file
@@ -0,0 +1 @@
|
||||
UPDATE friends SET player_id = player_id % 0x100000000, friend_id = friend_id % 0x100000000;
|
1
migrations/dlu/mysql/5_brick_model_sd0.sql
Normal file
1
migrations/dlu/mysql/5_brick_model_sd0.sql
Normal file
@@ -0,0 +1 @@
|
||||
# This file is here as a mock. The real migration is located in BrickByBrickFix.cpp
|
11
migrations/dlu/mysql/6_property_behaviors.sql
Normal file
11
migrations/dlu/mysql/6_property_behaviors.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
ALTER TABLE properties_contents
|
||||
ADD COLUMN model_name TEXT NOT NULL DEFAULT "",
|
||||
ADD COLUMN model_description TEXT NOT NULL DEFAULT "",
|
||||
ADD COLUMN behavior_1 INT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN behavior_2 INT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN behavior_3 INT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN behavior_4 INT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN behavior_5 INT NOT NULL DEFAULT 0;
|
||||
|
||||
UPDATE properties_contents SET model_name = CONCAT("Objects_", lot, "_name") WHERE model_name = "";
|
||||
CREATE TABLE IF NOT EXISTS behaviors (id INT NOT NULL, behavior_info TEXT NOT NULL);
|
1
migrations/dlu/mysql/7_make_play_key_id_nullable.sql
Normal file
1
migrations/dlu/mysql/7_make_play_key_id_nullable.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE accounts MODIFY play_key_id INT DEFAULT 0;
|
1
migrations/dlu/mysql/8_foreign_play_key.sql
Normal file
1
migrations/dlu/mysql/8_foreign_play_key.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE accounts MODIFY play_key_id INT DEFAULT NULL;
|
18
migrations/dlu/mysql/9_Update_Leaderboard_Storage.sql
Normal file
18
migrations/dlu/mysql/9_Update_Leaderboard_Storage.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
ALTER TABLE leaderboard
|
||||
ADD COLUMN tertiaryScore FLOAT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN numWins INT NOT NULL DEFAULT 0,
|
||||
ADD COLUMN timesPlayed INT NOT NULL DEFAULT 1,
|
||||
MODIFY time INT NOT NULL DEFAULT 0;
|
||||
|
||||
/* Can only ALTER one column at a time... */
|
||||
ALTER TABLE leaderboard CHANGE score primaryScore FLOAT NOT NULL DEFAULT 0;
|
||||
ALTER TABLE leaderboard CHANGE time secondaryScore FLOAT NOT NULL DEFAULT 0 AFTER primaryScore;
|
||||
|
||||
/* A bit messy, but better than going through a bunch of code fixes all to be run once. */
|
||||
UPDATE leaderboard SET
|
||||
primaryScore = secondaryScore,
|
||||
secondaryScore = 0 WHERE game_id IN (1, 44, 46, 47, 48, 49, 53, 103, 104, 108, 1901);
|
||||
|
||||
/* Do this last so we dont update entry times erroneously */
|
||||
ALTER TABLE leaderboard
|
||||
CHANGE last_played last_played TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP();
|
Reference in New Issue
Block a user