From 83974e146dbf9db6d71f50c84ffcc94829b7f6aa Mon Sep 17 00:00:00 2001 From: Kyep Date: Sat, 24 Oct 2020 18:13:41 -0700 Subject: [PATCH] sync tables whitelist, watch, library, player --- SQL/paradise_schema.sql | 80 +++++++++++++++-------------- SQL/paradise_schema_prefixed.sql | 86 ++++++++++++++++---------------- SQL/updates/13-14.sql | 51 ++++++++++++++++--- 3 files changed, 129 insertions(+), 88 deletions(-) diff --git a/SQL/paradise_schema.sql b/SQL/paradise_schema.sql index dfa76f38f63..3289ac435fd 100644 --- a/SQL/paradise_schema.sql +++ b/SQL/paradise_schema.sql @@ -250,33 +250,37 @@ 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, 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 */; ALTER TABLE `player` ADD INDEX(`lastseen`); ALTER TABLE `player` ADD INDEX(`computerid`); @@ -414,10 +418,10 @@ CREATE TABLE `karmatotals` ( `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; + 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 */; -ALTER TABLE `karmatotals` ADD INDEX(`byondkey`); -- -- Table structure for table `library` @@ -428,14 +432,14 @@ 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; +) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `library` ADD INDEX(`ckey`); ALTER TABLE `library` ADD INDEX(`flagged`); /*!40101 SET character_set_client = @saved_cs_client */; @@ -465,12 +469,12 @@ DROP TABLE IF EXISTS `whitelist`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `whitelist` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` VARCHAR(32) NOT NULL DEFAULT '', - `job` MEDIUMTEXT, - `species` MEDIUMTEXT, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=877 DEFAULT CHARSET=utf8mb4; -ALTER TABLE `whitelist` ADD INDEX(`ckey`); + `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 */; @@ -490,14 +494,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 */; diff --git a/SQL/paradise_schema_prefixed.sql b/SQL/paradise_schema_prefixed.sql index 2bec803348d..c590225a771 100644 --- a/SQL/paradise_schema_prefixed.sql +++ b/SQL/paradise_schema_prefixed.sql @@ -249,39 +249,37 @@ 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, PRIMARY KEY (`id`), - UNIQUE KEY `ckey` (`ckey`) -) ENGINE=InnoDB AUTO_INCREMENT=32446 DEFAULT CHARSET=utf8mb4; -/*!40101 SET character_set_client = @saved_cs_client */; -ALTER TABLE `SS13_player` ADD INDEX(`lastseen`); -ALTER TABLE `SS13_player` ADD INDEX(`computerid`); -ALTER TABLE `SS13_player` ADD INDEX(`ip`); -ALTER TABLE `SS13_player` ADD INDEX(`fuid`); -ALTER TABLE `SS13_player` ADD INDEX(`fupdate`); + 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; -- -- Table structure for table `SS13_poll_option` @@ -413,10 +411,10 @@ CREATE TABLE `SS13_karmatotals` ( `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; + 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 */; -ALTER TABLE `SS13_karmatotals` ADD INDEX(`byondkey`); -- -- Table structure for table `SS13_library` @@ -427,14 +425,14 @@ 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; +) ENGINE=MyISAM AUTO_INCREMENT=4537 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `SS13_library` ADD INDEX(`ckey`); ALTER TABLE `SS13_library` ADD INDEX(`flagged`); /*!40101 SET character_set_client = @saved_cs_client */; @@ -464,12 +462,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` VARCHAR(32) NOT NULL DEFAULT '', - `job` MEDIUMTEXT, - `species` MEDIUMTEXT, - PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=877 DEFAULT CHARSET=utf8mb4; -ALTER TABLE `SS13_whitelist` ADD INDEX(`ckey`); + `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 */; @@ -489,14 +487,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 */; diff --git a/SQL/updates/13-14.sql b/SQL/updates/13-14.sql index b2e48e7b8cb..874135fbed3 100644 --- a/SQL/updates/13-14.sql +++ b/SQL/updates/13-14.sql @@ -12,6 +12,7 @@ CREATE TABLE `ip2group` ( ALTER TABLE `ip2group` ADD INDEX(`groupstr`); + # Add search indexes to make the most common DB queries faster ALTER TABLE `admin` ADD INDEX(`ckey`); @@ -26,28 +27,66 @@ ALTER TABLE `library` ADD INDEX(`flagged`); ALTER TABLE `notes` ADD INDEX(`ckey`); ALTER TABLE `oauth_tokens` ADD INDEX(`ckey`); + + # Delete pointless indexes + DROP INDEX ckey_UNIQUE ON privacy; -# Add more search indexes to account for the custom indexes we already had but which downstreams do not and were not in the schema + + +# 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; + + +# 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 `characters` ADD INDEX(`ckey`); + ALTER TABLE `ban` ADD INDEX(`ckey`); ALTER TABLE `ban` ADD INDEX(`computerid`); ALTER TABLE `ban` ADD INDEX(`ip`); + +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 `whitelist` CHANGE COLUMN `ckey` `ckey` VARCHAR(32) NOT NULL DEFAULT '' AFTER `id`; -ALTER TABLE `whitelist` CHANGE COLUMN `job` `job` MEDIUMTEXT AFTER `ckey`; -ALTER TABLE `whitelist` CHANGE COLUMN `species` `species` MEDIUMTEXT AFTER `job`; + +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 NOT NULL AFTER `adminckey`; +ALTER TABLE `watch` CHANGE COLUMN `edits` `edits` MEDIUMTEXT COLLATE utf8mb4_unicode_ci NOT NULL AFTER `last_editor`; + +ALTER TABLE `whitelist` CHANGE COLUMN `ckey` `ckey` VARCHAR(32) COLLATE utf8mb4_unicode_ci NOT NULL AFTER `id`; +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`); -# Add player table field for byond account creation date -ALTER TABLE `player` ADD COLUMN `byond_date` DATE;