From b31f38796a0381360dac3a23da057fc5ca9a7e1c Mon Sep 17 00:00:00 2001 From: KasparoVy Date: Fri, 14 Apr 2017 00:54:09 -0400 Subject: [PATCH] Schema Changes Replaces the old RGB columns with hexcolour columns. The required SQL query to change the current database is this: ALTER TABLE `characters` ADD `hair_colour` varchar(7) NOT NULL AFTER `language`, ADD `secondary_hair_colour` varchar(7) NOT NULL AFTER `hair_blue`, ADD `facial_hair_colour` varchar(7) NOT NULL AFTER `secondary_hair_blue`, ADD `secondary_facial_hair_colour` varchar(7) NOT NULL AFTER `facial_blue`, ADD `skin_colour` varchar(7) NOT NULL AFTER `skin_tone`, ADD `head_accessory_colour` varchar(7) NOT NULL AFTER `marking_colours`, ADD `eye_colour` varchar(7) NOT NULL AFTER `alt_head_name`; UPDATE `characters` SET `hair_colour` = CONCAT("#", LPAD(HEX(`hair_red`), 2,'0'), LPAD(HEX(`hair_green`), 2,'0'), LPAD(HEX(`hair_blue`), 2,'0')), `secondary_hair_colour` = CONCAT("#", LPAD(HEX(`secondary_hair_red`), 2,'0'), LPAD(HEX(`secondary_hair_green`), 2,'0'), LPAD(HEX(`secondary_hair_blue`), 2,'0')), `facial_hair_colour` = CONCAT("#", LPAD(HEX(`facial_red`), 2,'0'), LPAD(HEX(`facial_green`), 2,'0'), LPAD(HEX(`facial_blue`), 2,'0')), `secondary_facial_hair_colour` = CONCAT("#", LPAD(HEX(`secondary_facial_red`), 2,'0'), LPAD(HEX(`secondary_facial_green`), 2,'0'), LPAD(HEX(`secondary_facial_blue`), 2,'0')), `skin_colour` = CONCAT("#", LPAD(HEX(`skin_red`), 2,'0'), LPAD(HEX(`skin_green`), 2,'0'), LPAD(HEX(`skin_blue`), 2,'0')), `head_accessory_colour` = CONCAT("#", LPAD(HEX(`head_accessory_red`), 2,'0'), LPAD(HEX(`head_accessory_green`), 2,'0'), LPAD(HEX(`head_accessory_blue`), 2,'0')), `eye_colour` = CONCAT("#", LPAD(HEX(`eyes_red`), 2,'0'), LPAD(HEX(`eyes_green`), 2,'0'), LPAD(HEX(`eyes_blue`), 2,'0')); ALTER TABLE `characters` DROP `hair_red`, DROP `hair_green`, DROP `hair_blue`, DROP `secondary_hair_red`, DROP `secondary_hair_green`, DROP `secondary_hair_blue`, DROP `facial_red`, DROP `facial_green`, DROP `facial_blue`, DROP `secondary_facial_red`, DROP `secondary_facial_green`, DROP `secondary_facial_blue`, DROP `skin_red`, DROP `skin_green`, DROP `skin_blue`, DROP `head_accessory_red`, DROP `head_accessory_green`, DROP `head_accessory_blue`, DROP `eyes_red`, DROP `eyes_green`, DROP `eyes_blue`; The above does the following: - Adds the new hex colour columns (7 char, 1 for the # and 6 for the number characters) - Fills the columns with the appropriate hexcolour values calculated by converting the appropriate database RGB entries and concatenating them (yes this actually works 100%, tested on local DB with 20 characters all with varying species/designs) - Drops the old columns afterward --- SQL/paradise_schema.sql | 28 +++++++--------------------- SQL/paradise_schema_prefixed.sql | 28 +++++++--------------------- 2 files changed, 14 insertions(+), 42 deletions(-) diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index 8cf94d61835..f9ede329474 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -30,34 +30,20 @@ CREATE TABLE `characters` ( `age` smallint(4) NOT NULL, `species` varchar(45) NOT NULL, `language` varchar(45) NOT NULL, - `hair_red` smallint(4) NOT NULL, - `hair_green` smallint(4) NOT NULL, - `hair_blue` smallint(4) NOT NULL, - `secondary_hair_red` smallint(4) NOT NULL, - `secondary_hair_green` smallint(4) NOT NULL, - `secondary_hair_blue` smallint(4) NOT NULL, - `facial_red` smallint(4) NOT NULL, - `facial_green` smallint(4) NOT NULL, - `facial_blue` smallint(4) NOT NULL, - `secondary_facial_red` smallint(4) NOT NULL, - `secondary_facial_green` smallint(4) NOT NULL, - `secondary_facial_blue` smallint(4) NOT NULL, + `hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `secondary_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `facial_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `secondary_facial_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', `skin_tone` smallint(4) NOT NULL, - `skin_red` smallint(4) NOT NULL, - `skin_green` smallint(4) NOT NULL, - `skin_blue` smallint(4) NOT NULL, + `skin_colour` varchar(7) NOT NULL DEFAULT '#000000', `marking_colours` varchar(255) NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', - `head_accessory_red` smallint(4) NOT NULL, - `head_accessory_green` smallint(4) NOT NULL, - `head_accessory_blue` smallint(4) NOT NULL, + `head_accessory_colour` varchar(7) NOT NULL DEFAULT '#000000', `hair_style_name` varchar(45) NOT NULL, `facial_style_name` varchar(45) NOT NULL, `marking_styles` varchar(255) NOT NULL DEFAULT 'head=None&body=None&tail=None', `head_accessory_style_name` varchar(45) NOT NULL, `alt_head_name` varchar(45) NOT NULL, - `eyes_red` smallint(4) NOT NULL, - `eyes_green` smallint(4) NOT NULL, - `eyes_blue` smallint(4) NOT NULL, + `eye_colour` varchar(7) NOT NULL DEFAULT '#000000', `underwear` mediumtext NOT NULL, `undershirt` mediumtext NOT NULL, `backbag` mediumtext NOT NULL, diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index d1b62ae3767..8de204cfe3e 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -30,34 +30,20 @@ CREATE TABLE `SS13_characters` ( `age` smallint(4) NOT NULL, `species` varchar(45) NOT NULL, `language` varchar(45) NOT NULL, - `hair_red` smallint(4) NOT NULL, - `hair_green` smallint(4) NOT NULL, - `hair_blue` smallint(4) NOT NULL, - `secondary_hair_red` smallint(4) NOT NULL, - `secondary_hair_green` smallint(4) NOT NULL, - `secondary_hair_blue` smallint(4) NOT NULL, - `facial_red` smallint(4) NOT NULL, - `facial_green` smallint(4) NOT NULL, - `facial_blue` smallint(4) NOT NULL, - `secondary_facial_red` smallint(4) NOT NULL, - `secondary_facial_green` smallint(4) NOT NULL, - `secondary_facial_blue` smallint(4) NOT NULL, + `hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `secondary_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `facial_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', + `secondary_facial_hair_colour` varchar(7) NOT NULL DEFAULT '#000000', `skin_tone` smallint(4) NOT NULL, - `skin_red` smallint(4) NOT NULL, - `skin_green` smallint(4) NOT NULL, - `skin_blue` smallint(4) NOT NULL, + `skin_colour` varchar(7) NOT NULL DEFAULT '#000000', `marking_colours` varchar(255) NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', - `head_accessory_red` smallint(4) NOT NULL, - `head_accessory_green` smallint(4) NOT NULL, - `head_accessory_blue` smallint(4) NOT NULL, + `head_accessory_colour` varchar(7) NOT NULL DEFAULT '#000000', `hair_style_name` varchar(45) NOT NULL, `facial_style_name` varchar(45) NOT NULL, `marking_styles` varchar(255) NOT NULL DEFAULT 'head=None&body=None&tail=None', `head_accessory_style_name` varchar(45) NOT NULL, `alt_head_name` varchar(45) NOT NULL, - `eyes_red` smallint(4) NOT NULL, - `eyes_green` smallint(4) NOT NULL, - `eyes_blue` smallint(4) NOT NULL, + `eye_colour` varchar(7) NOT NULL DEFAULT '#000000', `underwear` mediumtext NOT NULL, `undershirt` mediumtext NOT NULL, `backbag` mediumtext NOT NULL,