diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index ead94c0ec9a..671d0f0339a 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -21,33 +21,33 @@ DROP TABLE IF EXISTS `characters`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `characters` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `slot` int(2) NOT NULL, - `OOC_Notes` mediumtext NOT NULL, - `real_name` varchar(45) NOT NULL, + `OOC_Notes` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `real_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `name_is_always_random` tinyint(1) NOT NULL, - `gender` varchar(11) NOT NULL, + `gender` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL, `age` smallint(4) NOT NULL, - `species` varchar(45) NOT NULL, - `language` varchar(45) 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', + `species` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `language` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `secondary_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `secondary_facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', `skin_tone` 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_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, - `eye_colour` varchar(7) NOT NULL DEFAULT '#000000', - `underwear` mediumtext NOT NULL, - `undershirt` mediumtext NOT NULL, - `backbag` mediumtext NOT NULL, - `b_type` varchar(45) NOT NULL, + `skin_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `marking_colours` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', + `head_accessory_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `hair_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `facial_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `marking_styles` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=None&body=None&tail=None', + `head_accessory_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `alt_head_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `eye_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `underwear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `undershirt` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `backbag` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `b_type` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `alternate_option` smallint(4) NOT NULL, `job_support_high` mediumint(8) NOT NULL, `job_support_med` mediumint(8) NOT NULL, @@ -61,22 +61,23 @@ CREATE TABLE `characters` ( `job_karma_high` mediumint(8) NOT NULL, `job_karma_med` mediumint(8) NOT NULL, `job_karma_low` mediumint(8) NOT NULL, - `flavor_text` mediumtext NOT NULL, - `med_record` mediumtext NOT NULL, - `sec_record` mediumtext NOT NULL, - `gen_record` mediumtext NOT NULL, + `flavor_text` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `med_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `sec_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `gen_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `disabilities` mediumint(8) NOT NULL, - `player_alt_titles` mediumtext NOT NULL, - `organ_data` mediumtext NOT NULL, - `rlimb_data` mediumtext NOT NULL, - `nanotrasen_relation` varchar(45) NOT NULL, + `player_alt_titles` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `organ_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `rlimb_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `nanotrasen_relation` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `speciesprefs` int(1) NOT NULL, - `socks` mediumtext NOT NULL, - `body_accessory` mediumtext NOT NULL, - `gear` mediumtext NOT NULL, + `socks` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `body_accessory` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `gear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `autohiss` tinyint(1) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18747 DEFAULT CHARSET=utf8; + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) +) ENGINE=InnoDB AUTO_INCREMENT=125467 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -96,7 +97,8 @@ CREATE TABLE `customuseritems` ( `cuiReason` text, `cuiPropAdjust` text, `cuiJobMask` text NOT NULL, - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `cuiCKey` (`cuiCKey`) ) ENGINE=MyISAM AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -135,14 +137,15 @@ DROP TABLE IF EXISTS `donators`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `donators` ( - `patreon_name` varchar(32) NOT NULL, + `patreon_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `tier` int(2), - `ckey` varchar(32) COMMENT 'Manual Field', + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Manual Field', `start_date` datetime, `end_date` datetime, `active` boolean, - PRIMARY KEY (`patreon_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + PRIMARY KEY (`patreon_name`), + KEY `ckey` (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -155,11 +158,12 @@ DROP TABLE IF EXISTS `admin`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Administrator', `level` int(2) NOT NULL DEFAULT '0', `flags` int(16) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -173,10 +177,11 @@ DROP TABLE IF EXISTS `admin_log`; CREATE TABLE `admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `datetime` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `adminip` varchar(18) NOT NULL, - `log` text NOT NULL, - PRIMARY KEY (`id`) + `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `adminip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, + `log` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `adminckey` (`adminckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -190,29 +195,32 @@ DROP TABLE IF EXISTS `ban`; CREATE TABLE `ban` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bantime` datetime NOT NULL, - `serverip` varchar(32) NOT NULL, - `bantype` varchar(32) NOT NULL, - `reason` text NOT NULL, - `job` varchar(32) DEFAULT NULL, + `serverip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `bantype` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `job` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `duration` int(11) NOT NULL, `rounds` int(11) DEFAULT NULL, `expiration_time` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `computerid` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `a_ckey` varchar(32) NOT NULL, - `a_computerid` varchar(32) NOT NULL, - `a_ip` varchar(32) NOT NULL, - `who` text NOT NULL, - `adminwho` text NOT NULL, - `edits` text, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `who` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `adminwho` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `unbanned` tinyint(1) DEFAULT NULL, `unbanned_datetime` datetime DEFAULT NULL, - `unbanned_ckey` varchar(32) DEFAULT NULL, - `unbanned_computerid` varchar(32) DEFAULT NULL, - `unbanned_ip` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=10685 DEFAULT CHARSET=utf8mb4; + `unbanned_ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `unbanned_computerid` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `unbanned_ip` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `computerid` (`computerid`), + KEY `ip` (`ip`) +) ENGINE=InnoDB AUTO_INCREMENT=58903 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -242,32 +250,38 @@ DROP TABLE IF EXISTS `player`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `player` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `firstseen` datetime NOT NULL, `lastseen` datetime NOT NULL, - `ip` varchar(18) NOT NULL, - `computerid` varchar(32) NOT NULL, - `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', - `ooccolor` varchar(7) DEFAULT '#b82e00', - `UI_style` varchar(10) DEFAULT 'Midnight', - `UI_style_color` varchar(7) DEFAULT '#ffffff', + `ip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, + `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `lastadminrank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Player', + `ooccolor` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#b82e00', + `UI_style` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Midnight', + `UI_style_color` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#ffffff', `UI_style_alpha` smallint(4) DEFAULT '255', - `be_role` mediumtext, + `be_role` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `default_slot` smallint(4) DEFAULT '1', - `toggles` int(8) DEFAULT '383', - `toggles_2` int(8) DEFAULT '14', + `toggles` int(11) DEFAULT NULL, + `toggles_2` int(11) DEFAULT '0', `sound` mediumint(8) DEFAULT '31', `volume` smallint(4) DEFAULT '100', - `lastchangelog` varchar(32) NOT NULL DEFAULT '0', - `exp` mediumtext, + `lastchangelog` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0', + `exp` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `clientfps` smallint(4) DEFAULT '0', `atklog` smallint(4) DEFAULT '0', - `fuid` bigint(20) NULL DEFAULT NULL, - `fupdate` smallint(4) NULL DEFAULT '0', + `fuid` bigint(20) DEFAULT NULL, + `fupdate` smallint(4) DEFAULT '0', `parallax` tinyint(1) DEFAULT '8', + `byond_date` DATE DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`) -) ENGINE=InnoDB AUTO_INCREMENT=32446 DEFAULT CHARSET=utf8mb4; + UNIQUE KEY `ckey` (`ckey`), + KEY `lastseen` (`lastseen`), + KEY `computerid` (`computerid`), + KEY `ip` (`ip`), + KEY `fuid` (`fuid`), + KEY `fupdate` (`fupdate`) +) ENGINE=InnoDB AUTO_INCREMENT=135298 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -362,8 +376,7 @@ CREATE TABLE `privacy` ( `ckey` varchar(32) NOT NULL, `datetime` datetime NOT NULL, `consent` bit(1) NOT NULL, - PRIMARY KEY (`ckey`), - UNIQUE KEY `ckey_UNIQUE` (`ckey`) + PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -398,11 +411,12 @@ DROP TABLE IF EXISTS `karmatotals`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `karmatotals` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `byondkey` text NOT NULL, + `byondkey` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL, `karma` int(11) NOT NULL, - `karmaspent` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=6765 DEFAULT CHARSET=utf8mb4; + `karmaspent` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `byondkey` (`byondkey`) +) ENGINE=MyISAM AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -414,14 +428,16 @@ DROP TABLE IF EXISTS `library`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `library` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `author` text NOT NULL, - `title` text NOT NULL, - `content` text NOT NULL, - `category` text NOT NULL, - `ckey` varchar(45) NOT NULL, + `author` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `content` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `category` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `flagged` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=929 DEFAULT CHARSET=utf8mb4; + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `flagged` (`flagged`) +) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -449,11 +465,12 @@ DROP TABLE IF EXISTS `whitelist`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `whitelist` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` text NOT NULL, - `job` text, - `species` text, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=877 DEFAULT CHARSET=utf8mb4; + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `job` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `species` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) +) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -473,14 +490,14 @@ DROP TABLE IF EXISTS `watch`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `watch` ( - `ckey` varchar(32) NOT NULL, - `reason` text NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, + `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `last_editor` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -501,7 +518,8 @@ CREATE TABLE `notes` ( `edits` text, `server` varchar(50) NOT NULL, `crew_playtime` mediumint(8) UNSIGNED DEFAULT '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -558,7 +576,8 @@ DROP TABLE IF EXISTS `oauth_tokens`; CREATE TABLE `oauth_tokens` ( `ckey` varchar(32) NOT NULL, `token` varchar(32) NOT NULL, - PRIMARY KEY (`token`) + PRIMARY KEY (`token`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -588,7 +607,10 @@ CREATE TABLE `connection_log` ( `ckey` varchar(32) NOT NULL, `ip` varchar(32) NOT NULL, `computerid` varchar(32) NOT NULL, - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `ip` (`ip`), + KEY `computerid` (`computerid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- @@ -604,3 +626,16 @@ CREATE TABLE `changelog` ( `cl_entry` TEXT NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- +-- Table structure for table `ip2group` +-- +DROP TABLE IF EXISTS `ip2group`; +CREATE TABLE `ip2group` ( + `ip` varchar (18) COLLATE utf8mb4_unicode_ci NOT NULL, + `date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, + `groupstr` varchar (32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + PRIMARY KEY (`ip`), + KEY `groupstr` (`groupstr`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index c8589a4c74c..68071224cc2 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -21,33 +21,33 @@ DROP TABLE IF EXISTS `SS13_characters`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_characters` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `slot` int(2) NOT NULL, - `OOC_Notes` mediumtext NOT NULL, - `real_name` varchar(45) NOT NULL, + `OOC_Notes` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `real_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `name_is_always_random` tinyint(1) NOT NULL, - `gender` varchar(11) NOT NULL, + `gender` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL, `age` smallint(4) NOT NULL, - `species` varchar(45) NOT NULL, - `language` varchar(45) 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', + `species` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `language` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `secondary_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `secondary_facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', `skin_tone` 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_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, - `eye_colour` varchar(7) NOT NULL DEFAULT '#000000', - `underwear` mediumtext NOT NULL, - `undershirt` mediumtext NOT NULL, - `backbag` mediumtext NOT NULL, - `b_type` varchar(45) NOT NULL, + `skin_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `marking_colours` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000', + `head_accessory_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `hair_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `facial_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `marking_styles` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=None&body=None&tail=None', + `head_accessory_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `alt_head_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, + `eye_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000', + `underwear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `undershirt` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `backbag` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `b_type` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `alternate_option` smallint(4) NOT NULL, `job_support_high` mediumint(8) NOT NULL, `job_support_med` mediumint(8) NOT NULL, @@ -61,22 +61,23 @@ CREATE TABLE `SS13_characters` ( `job_karma_high` mediumint(8) NOT NULL, `job_karma_med` mediumint(8) NOT NULL, `job_karma_low` mediumint(8) NOT NULL, - `flavor_text` mediumtext NOT NULL, - `med_record` mediumtext NOT NULL, - `sec_record` mediumtext NOT NULL, - `gen_record` mediumtext NOT NULL, + `flavor_text` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `med_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `sec_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `gen_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `disabilities` mediumint(8) NOT NULL, - `player_alt_titles` mediumtext NOT NULL, - `organ_data` mediumtext NOT NULL, - `rlimb_data` mediumtext NOT NULL, - `nanotrasen_relation` varchar(45) NOT NULL, + `player_alt_titles` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `organ_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `rlimb_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `nanotrasen_relation` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL, `speciesprefs` int(1) NOT NULL, - `socks` mediumtext NOT NULL, - `body_accessory` mediumtext NOT NULL, - `gear` mediumtext NOT NULL, + `socks` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `body_accessory` longtext COLLATE utf8mb4_unicode_ci NOT NULL, + `gear` longtext COLLATE utf8mb4_unicode_ci NOT NULL, `autohiss` tinyint(1) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18747 DEFAULT CHARSET=utf8; + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) +) ENGINE=InnoDB AUTO_INCREMENT=125467 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -98,6 +99,7 @@ CREATE TABLE `SS13_customuseritems` ( `cuiJobMask` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=56 DEFAULT CHARSET=utf8mb4; +ALTER TABLE `SS13_customuseritems` ADD INDEX(`cuiCKey`); /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -135,14 +137,15 @@ DROP TABLE IF EXISTS `SS13_donators`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_donators` ( - `patreon_name` varchar(32) NOT NULL, + `patreon_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `tier` int(2), - `ckey` varchar(32) COMMENT 'Manual Field', + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Manual Field', `start_date` datetime, `end_date` datetime, `active` boolean, - PRIMARY KEY (`patreon_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; + PRIMARY KEY (`patreon_name`), + KEY `ckey` (`ckey`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -154,11 +157,12 @@ DROP TABLE IF EXISTS `SS13_admin`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `rank` varchar(32) NOT NULL DEFAULT 'Administrator', + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Administrator', `level` int(2) NOT NULL DEFAULT '0', `flags` int(16) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB AUTO_INCREMENT=99 DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -172,10 +176,11 @@ DROP TABLE IF EXISTS `SS13_admin_log`; CREATE TABLE `SS13_admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `datetime` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `adminip` varchar(18) NOT NULL, - `log` text NOT NULL, - PRIMARY KEY (`id`) + `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `adminip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, + `log` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `adminckey` (`adminckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -189,29 +194,32 @@ DROP TABLE IF EXISTS `SS13_ban`; CREATE TABLE `SS13_ban` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bantime` datetime NOT NULL, - `serverip` varchar(32) NOT NULL, - `bantype` varchar(32) NOT NULL, - `reason` text NOT NULL, - `job` varchar(32) DEFAULT NULL, + `serverip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `bantype` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `job` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, `duration` int(11) NOT NULL, `rounds` int(11) DEFAULT NULL, `expiration_time` datetime NOT NULL, - `ckey` varchar(32) NOT NULL, - `computerid` varchar(32) NOT NULL, - `ip` varchar(32) NOT NULL, - `a_ckey` varchar(32) NOT NULL, - `a_computerid` varchar(32) NOT NULL, - `a_ip` varchar(32) NOT NULL, - `who` text NOT NULL, - `adminwho` text NOT NULL, - `edits` text, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `a_ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `who` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `adminwho` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `unbanned` tinyint(1) DEFAULT NULL, `unbanned_datetime` datetime DEFAULT NULL, - `unbanned_ckey` varchar(32) DEFAULT NULL, - `unbanned_computerid` varchar(32) DEFAULT NULL, - `unbanned_ip` varchar(32) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=10685 DEFAULT CHARSET=utf8mb4; + `unbanned_ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `unbanned_computerid` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `unbanned_ip` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `computerid` (`computerid`), + KEY `ip` (`ip`) +) ENGINE=InnoDB AUTO_INCREMENT=58903 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -241,32 +249,38 @@ DROP TABLE IF EXISTS `SS13_player`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_player` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `firstseen` datetime NOT NULL, `lastseen` datetime NOT NULL, - `ip` varchar(18) NOT NULL, - `computerid` varchar(32) NOT NULL, - `lastadminrank` varchar(32) NOT NULL DEFAULT 'Player', - `ooccolor` varchar(7) DEFAULT '#b82e00', - `UI_style` varchar(10) DEFAULT 'Midnight', - `UI_style_color` varchar(7) DEFAULT '#ffffff', + `ip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL, + `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `lastadminrank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Player', + `ooccolor` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#b82e00', + `UI_style` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Midnight', + `UI_style_color` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#ffffff', `UI_style_alpha` smallint(4) DEFAULT '255', - `be_role` mediumtext, + `be_role` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `default_slot` smallint(4) DEFAULT '1', - `toggles` int(8) DEFAULT '383', - `toggles_2` int(8) DEFAULT '14', + `toggles` int(11) DEFAULT NULL, + `toggles_2` int(11) DEFAULT '0', `sound` mediumint(8) DEFAULT '31', `volume` smallint(4) DEFAULT '100', - `lastchangelog` varchar(32) NOT NULL DEFAULT '0', - `exp` mediumtext, + `lastchangelog` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0', + `exp` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, `clientfps` smallint(4) DEFAULT '0', `atklog` smallint(4) DEFAULT '0', - `fuid` bigint(20) NULL DEFAULT NULL, - `fupdate` smallint(4) NULL DEFAULT '0', + `fuid` bigint(20) DEFAULT NULL, + `fupdate` smallint(4) DEFAULT '0', `parallax` tinyint(1) DEFAULT '8', + `byond_date` DATE DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`) -) ENGINE=InnoDB AUTO_INCREMENT=32446 DEFAULT CHARSET=utf8mb4; + UNIQUE KEY `ckey` (`ckey`), + KEY `lastseen` (`lastseen`), + KEY `computerid` (`computerid`), + KEY `ip` (`ip`), + KEY `fuid` (`fuid`), + KEY `fupdate` (`fupdate`) +) ENGINE=InnoDB AUTO_INCREMENT=135298 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -361,8 +375,7 @@ CREATE TABLE `ss13_privacy` ( `ckey` varchar(32) NOT NULL, `datetime` datetime NOT NULL, `consent` bit(1) NOT NULL, - PRIMARY KEY (`ckey`), - UNIQUE KEY `ckey_UNIQUE` (`ckey`) + PRIMARY KEY (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -397,11 +410,12 @@ DROP TABLE IF EXISTS `SS13_karmatotals`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_karmatotals` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `byondkey` text NOT NULL, + `byondkey` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL, `karma` int(11) NOT NULL, - `karmaspent` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=6765 DEFAULT CHARSET=utf8mb4; + `karmaspent` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`id`), + KEY `byondkey` (`byondkey`) +) ENGINE=MyISAM AUTO_INCREMENT=25715 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -413,14 +427,16 @@ DROP TABLE IF EXISTS `SS13_library`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_library` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `author` text NOT NULL, - `title` text NOT NULL, - `content` text NOT NULL, - `category` text NOT NULL, - `ckey` varchar(45) NOT NULL, + `author` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `title` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `content` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `category` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, `flagged` int(11) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=929 DEFAULT CHARSET=utf8mb4; + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `flagged` (`flagged`) +) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -448,11 +464,12 @@ DROP TABLE IF EXISTS `SS13_whitelist`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_whitelist` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` text NOT NULL, - `job` text, - `species` text, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=877 DEFAULT CHARSET=utf8mb4; + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `job` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `species` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) +) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -472,14 +489,14 @@ DROP TABLE IF EXISTS `SS13_watch`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `SS13_watch` ( - `ckey` varchar(32) NOT NULL, - `reason` text NOT NULL, + `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL, `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, + `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `last_editor` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -500,7 +517,8 @@ CREATE TABLE `SS13_notes` ( `edits` text, `server` varchar(50) NOT NULL, `crew_playtime` mediumint(8) UNSIGNED DEFAULT '0', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -557,7 +575,8 @@ DROP TABLE IF EXISTS `SS13_oauth_tokens`; CREATE TABLE `SS13_oauth_tokens` ( `ckey` varchar(32) NOT NULL, `token` varchar(32) NOT NULL, - PRIMARY KEY (`token`) + PRIMARY KEY (`token`), + KEY `ckey` (`ckey`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; @@ -585,7 +604,10 @@ CREATE TABLE `SS13_connection_log` ( `ckey` varchar(32) NOT NULL, `ip` varchar(32) NOT NULL, `computerid` varchar(32) NOT NULL, - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `ckey` (`ckey`), + KEY `ip` (`ip`), + KEY `computerid` (`computerid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- @@ -601,3 +623,16 @@ CREATE TABLE `SS13_changelog` ( `cl_entry` TEXT NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +-- +-- Table structure for table `ip2group` +-- +DROP TABLE IF EXISTS `SS13_ip2group`; +CREATE TABLE `SS13_ip2group` ( + `ip` varchar (18) COLLATE utf8mb4_unicode_ci NOT NULL, + `date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, + `groupstr` varchar (32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + PRIMARY KEY (`ip`), + KEY `groupstr` (`groupstr`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + diff --git a/SQL/updates/13-14.sql b/SQL/updates/13-14.sql new file mode 100644 index 00000000000..2b53b5799fb --- /dev/null +++ b/SQL/updates/13-14.sql @@ -0,0 +1,161 @@ +#Updating the SQL from version 13 to version 14. -Kyet + + +# Add new tables used by backend tooling + +CREATE TABLE `ip2group` ( + `ip` varchar (18) COLLATE utf8mb4_unicode_ci NOT NULL, + `date` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL, + `groupstr` varchar (32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', + PRIMARY KEY (`ip`), + KEY `groupstr` (`groupstr`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + + + +# Add search indexes to make the most common DB queries faster + +ALTER TABLE `admin` ADD INDEX(`ckey`); +ALTER TABLE `admin_log` ADD INDEX(`adminckey`); +ALTER TABLE `connection_log` ADD INDEX(`ckey`); +ALTER TABLE `connection_log` ADD INDEX(`ip`); +ALTER TABLE `connection_log` ADD INDEX(`computerid`); +ALTER TABLE `customuseritems` ADD INDEX(`cuiCKey`); +ALTER TABLE `donators` ADD INDEX(`ckey`); +ALTER TABLE `library` ADD INDEX(`ckey`); +ALTER TABLE `library` ADD INDEX(`flagged`); +ALTER TABLE `notes` ADD INDEX(`ckey`); +ALTER TABLE `oauth_tokens` ADD INDEX(`ckey`); + + +# Alter whitelist table to change ckey format to avoid SQL failures when downstreams apply indexes + +ALTER TABLE `whitelist` CHANGE COLUMN `ckey` `ckey` VARCHAR(32) COLLATE utf8mb4_unicode_ci NOT NULL AFTER `id`; + +# Alter library table to standardize ckey field length + +ALTER TABLE `library` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL AFTER `category`; + + +# Delete pointless indexes (there is already an index on ckey, having a second index on the exact same data is pointless) + +DROP INDEX ckey_UNIQUE ON privacy; + + + +# Add player table field that AA plans to use very soon to store byond account creation date + +ALTER TABLE `player` ADD COLUMN `byond_date` DATE DEFAULT NULL; + + +# **************** READ THIS CAREFULLY ********************************************************** +# These updates change your DB to match what we (Paradise) ALREADY USE IN PRODUCTION. +# We (Paradise) do NOT need to run any of these. +# They are included here only for the convenience of github contributors, and downstream servers. + +ALTER TABLE `admin` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `admin` CHANGE COLUMN `rank` `rank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Administrator'; + +ALTER TABLE `admin_log` CHANGE COLUMN `adminckey` `adminckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `admin_log` CHANGE COLUMN `adminip` `adminip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `admin_log` CHANGE COLUMN `log` `log` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL; + +ALTER TABLE `characters` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `OOC_Notes` `OOC_Notes` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `real_name` `real_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `gender` `gender` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `species` `species` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `language` `language` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `hair_colour` `hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `secondary_hair_colour` `secondary_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `facial_hair_colour` `facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `secondary_facial_hair_colour` `secondary_facial_hair_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `skin_colour` `skin_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `marking_colours` `marking_colours` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=%23000000&body=%23000000&tail=%23000000'; +ALTER TABLE `characters` CHANGE COLUMN `head_accessory_colour` `head_accessory_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `hair_style_name` `hair_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `facial_style_name` `facial_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `marking_styles` `marking_styles` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'head=None&body=None&tail=None'; +ALTER TABLE `characters` CHANGE COLUMN `head_accessory_style_name` `head_accessory_style_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `alt_head_name` `alt_head_name` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `eye_colour` `eye_colour` varchar(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#000000'; +ALTER TABLE `characters` CHANGE COLUMN `underwear` `underwear` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `undershirt` `undershirt` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `backbag` `backbag` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `characters` CHANGE COLUMN `b_type` `b_type` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `flavor_text` `flavor_text` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `med_record` `med_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `sec_record` `sec_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `gen_record` `gen_record` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `player_alt_titles` `player_alt_titles` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `organ_data` `organ_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `rlimb_data` `rlimb_data` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `nanotrasen_relation` `nanotrasen_relation` varchar(45) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `socks` `socks` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `body_accessory` `body_accessory` longtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `characters` CHANGE COLUMN `gear` `gear` longtext COLLATE utf8mb4_unicode_ci NOT NULL; + +ALTER TABLE `characters` ADD INDEX(`ckey`); + +ALTER TABLE `ban` CHANGE COLUMN `serverip` `serverip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `bantype` `bantype` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `reason` `reason` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `job` `job` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `ban` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `computerid` `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `ip` `ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `a_ckey` `a_ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `a_computerid` `a_computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `a_ip` `a_ip` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `who` `who` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `adminwho` `adminwho` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `ban` CHANGE COLUMN `edits` `edits` mediumtext COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `ban` CHANGE COLUMN `unbanned_ckey` `unbanned_ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `ban` CHANGE COLUMN `unbanned_computerid` `unbanned_computerid` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `ban` CHANGE COLUMN `unbanned_ip` `unbanned_ip` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `ban` ADD INDEX(`ckey`); +ALTER TABLE `ban` ADD INDEX(`computerid`); +ALTER TABLE `ban` ADD INDEX(`ip`); + +ALTER TABLE `donators` CHANGE COLUMN `patreon_name` `patreon_name` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `donators` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Manual Field'; + +ALTER TABLE `library` CHANGE COLUMN `author` `author` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `library` CHANGE COLUMN `title` `title` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `library` CHANGE COLUMN `content` `content` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `library` CHANGE COLUMN `category` `category` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `library` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; + +ALTER TABLE `player` CHANGE COLUMN `ckey` `ckey` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `player` CHANGE COLUMN `ip` `ip` varchar(18) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `player` CHANGE COLUMN `computerid` `computerid` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `player` CHANGE COLUMN `lastadminrank` `lastadminrank` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Player'; +ALTER TABLE `player` CHANGE COLUMN `ooccolor` `ooccolor` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#b82e00'; +ALTER TABLE `player` CHANGE COLUMN `UI_style` `UI_style` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'Midnight'; +ALTER TABLE `player` CHANGE COLUMN `UI_style_color` `UI_style_color` varchar(7) COLLATE utf8mb4_unicode_ci DEFAULT '#ffffff'; +ALTER TABLE `player` CHANGE COLUMN `be_role` `be_role` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `player` CHANGE COLUMN `toggles` `toggles` int(11) DEFAULT NULL; +ALTER TABLE `player` CHANGE COLUMN `toggles_2` `toggles_2` int(11) DEFAULT 0; +ALTER TABLE `player` CHANGE COLUMN `lastchangelog` `lastchangelog` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0'; +ALTER TABLE `player` CHANGE COLUMN `exp` `exp` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL; +ALTER TABLE `player` ADD INDEX(`lastseen`); +ALTER TABLE `player` ADD INDEX(`computerid`); +ALTER TABLE `player` ADD INDEX(`ip`); +ALTER TABLE `player` ADD INDEX(`fuid`); +ALTER TABLE `player` ADD INDEX(`fupdate`); + +ALTER TABLE `karmatotals` CHANGE COLUMN `byondkey` `byondkey` VARCHAR(32) NOT NULL DEFAULT '' COLLATE 'utf8mb4_general_ci' AFTER `id`; +ALTER TABLE `karmatotals` CHANGE COLUMN `karmaspent` `karmaspent` int(11) NOT NULL DEFAULT 0 AFTER `karma`; +ALTER TABLE `karmatotals` ADD INDEX(`byondkey`); + +ALTER TABLE `watch` CHANGE COLUMN `ckey` `ckey` VARCHAR(32) COLLATE utf8mb4_unicode_ci NOT NULL; +ALTER TABLE `watch` CHANGE COLUMN `reason` `reason` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL AFTER `ckey`; +ALTER TABLE `watch` CHANGE COLUMN `adminckey` `adminckey` VARCHAR(32) COLLATE utf8mb4_unicode_ci NOT NULL AFTER `timestamp`; +ALTER TABLE `watch` CHANGE COLUMN `last_editor` `last_editor` VARCHAR(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL AFTER `adminckey`; +ALTER TABLE `watch` CHANGE COLUMN `edits` `edits` MEDIUMTEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL AFTER `last_editor`; + +ALTER TABLE `whitelist` CHANGE COLUMN `job` `job` MEDIUMTEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL AFTER `ckey`; +ALTER TABLE `whitelist` CHANGE COLUMN `species` `species` MEDIUMTEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL AFTER `job`; +ALTER TABLE `whitelist` ADD INDEX(`ckey`); + + diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 4f9f1ae4408..418dd7f4314 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -363,7 +363,7 @@ #define INVESTIGATE_BOMB "bombs" // The SQL version required by this version of the code -#define SQL_VERSION 13 +#define SQL_VERSION 14 // Vending machine stuff #define CAT_NORMAL 1 diff --git a/config/example/dbconfig.txt b/config/example/dbconfig.txt index f1a96ae3d74..5329ec95056 100644 --- a/config/example/dbconfig.txt +++ b/config/example/dbconfig.txt @@ -9,7 +9,7 @@ ## This value must be set to the version of the paradise schema in use. ## If this value does not match, the SQL database will not be loaded and an error will be generated. ## Roundstart will be delayed. -DB_VERSION 13 +DB_VERSION 14 ## Server the MySQL database can be found at. # Examples: localhost, 200.135.5.43, www.mysqldb.com, etc. diff --git a/tools/travis/dbconfig.txt b/tools/travis/dbconfig.txt index 07da8e74371..feb625d4a73 100644 --- a/tools/travis/dbconfig.txt +++ b/tools/travis/dbconfig.txt @@ -2,7 +2,7 @@ # Dont use it ingame # Remember to update this when you increase the SQL version! -aa SQL_ENABLED -DB_VERSION 13 +DB_VERSION 14 ADDRESS 127.0.0.1 PORT 3306 FEEDBACK_DATABASE feedback