oops! all dumb cat
This commit is contained in:
+248
-6
@@ -1,13 +1,256 @@
|
||||
Any time you make a change to the schema files, remember to increment the database schema version. Generally increment the minor number, major should be reserved for significant changes to the schema. Both values go up to 255.
|
||||
|
||||
The latest database version is 4.7; The query to update the schema revision table is:
|
||||
The latest database version is 5.12; The query to update the schema revision table is:
|
||||
|
||||
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 7);
|
||||
INSERT INTO `schema_revision` (`major`, `minor`) VALUES (5, 12);
|
||||
or
|
||||
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 7);
|
||||
INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (5, 12);
|
||||
|
||||
In any query remember to add a prefix to the table names if you use one.
|
||||
|
||||
####################################################################################################
|
||||
NOTICE! BANS AND OTHERS ARENT SET TO THEIR LATEST FORMAT YET AS THE BACKEND DOES NOT SUPPORT IT YET!
|
||||
####################################################################################################
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.12, 29 December 2020, by Missfox
|
||||
Modified table `messages`, adding column `playtime` to show the user's playtime when the note was created.
|
||||
|
||||
ALTER TABLE `messages` ADD `playtime` INT(11) NULL DEFAULT(NULL) AFTER `severity`
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.11, 7 September 2020, by bobbahbrown, MrStonedOne, and Jordie0608
|
||||
|
||||
Adds indices to support search operations on the adminhelp ticket tables. This is to support improved performance on Atlanta Ned's Statbus.
|
||||
|
||||
CREATE INDEX `idx_ticket_act_recip` (`action`, `recipient`)
|
||||
CREATE INDEX `idx_ticket_act_send` (`action`, `sender`)
|
||||
CREATE INDEX `idx_ticket_tic_rid` (`ticket`, `round_id`)
|
||||
CREATE INDEX `idx_ticket_act_time_rid` (`action`, `timestamp`, `round_id`)
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.10, 7 August 2020, by oranges
|
||||
|
||||
Changes how the discord verification process works.
|
||||
Adds the discord_links table, and migrates discord id entries from player table to the discord links table in a once off operation and then removes the discord id
|
||||
on the player table
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
DROP TABLE IF EXISTS `discord_links`;
|
||||
CREATE TABLE `discord_links` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`ckey` VARCHAR(32) NOT NULL,
|
||||
`discord_id` BIGINT(20) DEFAULT NULL,
|
||||
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`one_time_token` VARCHAR(100) NOT NULL,
|
||||
`valid` BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO `discord_links` (`ckey`, `discord_id`, `one_time_token`, `valid`) SELECT `ckey`, `discord_id`, CONCAT("presync_from_player_table_", `ckey`), TRUE FROM `player` WHERE discord_id IS NOT NULL;
|
||||
|
||||
ALTER TABLE `player` DROP COLUMN `discord_id`;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.9, 19 April 2020, by Jordie0608
|
||||
Updates and improvements to poll handling.
|
||||
Added the `deleted` column to tables 'poll_option', 'poll_textreply' and 'poll_vote' and the columns `created_datetime`, `subtitle`, `allow_revoting` and `deleted` to 'poll_question'.
|
||||
Changes table 'poll_question' column `createdby_ckey` to be NOT NULL and index `idx_pquest_time_admin` to be `idx_pquest_time_deleted_id` and 'poll_textreply' column `adminrank` to have no default.
|
||||
Added procedure `set_poll_deleted` that's called when deleting a poll to set deleted to true on each poll table where rows matching a poll_id argument.
|
||||
|
||||
ALTER TABLE `poll_option`
|
||||
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `default_percentage_calc`;
|
||||
|
||||
ALTER TABLE `poll_question`
|
||||
CHANGE COLUMN `createdby_ckey` `createdby_ckey` VARCHAR(32) NOT NULL AFTER `multiplechoiceoptions`,
|
||||
ADD COLUMN `created_datetime` datetime NOT NULL AFTER `polltype`,
|
||||
ADD COLUMN `subtitle` VARCHAR(255) NULL DEFAULT NULL AFTER `question`,
|
||||
ADD COLUMN `allow_revoting` TINYINT(1) UNSIGNED NOT NULL AFTER `dontshow`,
|
||||
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `allow_revoting`,
|
||||
DROP INDEX `idx_pquest_time_admin`,
|
||||
ADD INDEX `idx_pquest_time_deleted_id` (`starttime`, `endtime`, `deleted`, `id`);
|
||||
|
||||
ALTER TABLE `poll_textreply`
|
||||
CHANGE COLUMN `adminrank` `adminrank` varchar(32) NOT NULL AFTER `replytext`,
|
||||
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `adminrank`;
|
||||
|
||||
ALTER TABLE `poll_vote`
|
||||
ADD COLUMN `deleted` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' AFTER `rating`;
|
||||
|
||||
DELIMITER $$
|
||||
CREATE PROCEDURE `set_poll_deleted`(
|
||||
IN `poll_id` INT
|
||||
)
|
||||
SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
UPDATE `poll_question` SET deleted = 1 WHERE id = poll_id;
|
||||
UPDATE `poll_option` SET deleted = 1 WHERE pollid = poll_id;
|
||||
UPDATE `poll_vote` SET deleted = 1 WHERE pollid = poll_id;
|
||||
UPDATE `poll_textreply` SET deleted = 1 WHERE pollid = poll_id;
|
||||
END
|
||||
$$
|
||||
DELIMITER ;
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.8, 7 April 2020, by Jordie0608
|
||||
Modified table `messages`, adding column `deleted_ckey` to record who deleted a message.
|
||||
|
||||
ALTER TABLE `messages` ADD COLUMN `deleted_ckey` VARCHAR(32) NULL DEFAULT NULL AFTER `deleted`;
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.7, 10 January 2020 by Atlanta-Ned
|
||||
Added ticket table for tracking ahelp tickets in the database.
|
||||
|
||||
DROP TABLE IF EXISTS `ticket`;
|
||||
CREATE TABLE `ticket` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`server_ip` int(10) unsigned NOT NULL,
|
||||
`server_port` smallint(5) unsigned NOT NULL,
|
||||
`round_id` int(11) unsigned NOT NULL,
|
||||
`ticket` smallint(11) unsigned NOT NULL,
|
||||
`action` varchar(20) NOT NULL DEFAULT 'Message',
|
||||
`message` text NOT NULL,
|
||||
`timestamp` datetime NOT NULL,
|
||||
`recipient` varchar(32) DEFAULT NULL,
|
||||
`sender` varchar(32) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.6, 6 December 2019 by Anturke
|
||||
Added achievement_name and achievement_description columns to achievement_metadata table.
|
||||
|
||||
|
||||
ALTER TABLE `achievement_metadata` ADD COLUMN (`achievement_name` VARCHAR(64) NULL DEFAULT NULL, `achievement_description` VARCHAR(512) NULL DEFAULT NULL);
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.5, 26 October 2019 by Anturke
|
||||
Added achievement_metadata table.
|
||||
|
||||
DROP TABLE IF EXISTS `achievement_metadata`;
|
||||
CREATE TABLE `achievement_metadata` (
|
||||
`achievement_key` VARCHAR(32) NOT NULL,
|
||||
`achievement_version` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
|
||||
`achievement_type` enum('achievement','score','award') NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`achievement_key`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
Version 5.4, 5 October 2019 by Anturke
|
||||
Added achievements table.
|
||||
See hub migration verb in _achievement_data.dm for details on migrating.
|
||||
|
||||
CREATE TABLE `achievements` (
|
||||
`ckey` VARCHAR(32) NOT NULL,
|
||||
`achievement_key` VARCHAR(32) NOT NULL,
|
||||
`value` INT NULL,
|
||||
`last_updated` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`ckey`,`achievement_key`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
Version 5.3, 6 July 2019, by Atlanta-Ned
|
||||
Added a `feedback` column to the admin table, used for linking to individual admin feedback threads. Currently this is only used for statistics tracking tools such as Statbus and isn't used by the game.
|
||||
|
||||
ALTER TABLE `admin` ADD `feedback` VARCHAR(255) NULL DEFAULT NULL AFTER `rank`;
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
Version 5.2, 30 May 2019, by AffectedArc07
|
||||
Added a field to the `player` table to track ckey and discord ID relationships
|
||||
|
||||
ALTER TABLE `player`
|
||||
ADD COLUMN `discord_id` BIGINT NULL DEFAULT NULL AFTER `flags`;
|
||||
----------------------------------------------------
|
||||
|
||||
Version 5.1, 25 Feb 2018, by MrStonedOne
|
||||
Added four tables to enable storing of stickybans in the database since byond can lose them, and to enable disabling stickybans for a round without depending on a crash free round. Existing stickybans are automagically imported to the tables.
|
||||
|
||||
CREATE TABLE `stickyban` (
|
||||
`ckey` VARCHAR(32) NOT NULL,
|
||||
`reason` VARCHAR(2048) NOT NULL,
|
||||
`banning_admin` VARCHAR(32) NOT NULL,
|
||||
`datetime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`ckey`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE `stickyban_matched_ckey` (
|
||||
`stickyban` VARCHAR(32) NOT NULL,
|
||||
`matched_ckey` VARCHAR(32) NOT NULL,
|
||||
`first_matched` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_matched` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`exempt` TINYINT(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`stickyban`, `matched_ckey`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE `stickyban_matched_ip` (
|
||||
`stickyban` VARCHAR(32) NOT NULL,
|
||||
`matched_ip` INT UNSIGNED NOT NULL,
|
||||
`first_matched` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_matched` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`stickyban`, `matched_ip`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE `stickyban_matched_cid` (
|
||||
`stickyban` VARCHAR(32) NOT NULL,
|
||||
`matched_cid` VARCHAR(32) NOT NULL,
|
||||
`first_matched` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_matched` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`stickyban`, `matched_cid`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
Version 5.0, 28 October 2018, by Jordie0608
|
||||
Modified ban table to remove the need for the `bantype` column, a python script is used to migrate data to this new format.
|
||||
|
||||
See the file 'ban_conversion_2018-10-28.py' for instructions on how to use the script.
|
||||
|
||||
A new ban table can be created with the query:
|
||||
CREATE TABLE `ban` (
|
||||
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`bantime` DATETIME NOT NULL,
|
||||
`server_ip` INT(10) UNSIGNED NOT NULL,
|
||||
`server_port` SMALLINT(5) UNSIGNED NOT NULL,
|
||||
`round_id` INT(11) UNSIGNED NOT NULL,
|
||||
`role` VARCHAR(32) NULL DEFAULT NULL,
|
||||
`expiration_time` DATETIME NULL DEFAULT NULL,
|
||||
`applies_to_admins` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`reason` VARCHAR(2048) NOT NULL,
|
||||
`ckey` VARCHAR(32) NULL DEFAULT NULL,
|
||||
`ip` INT(10) UNSIGNED NULL DEFAULT NULL,
|
||||
`computerid` VARCHAR(32) NULL DEFAULT NULL,
|
||||
`a_ckey` VARCHAR(32) NOT NULL,
|
||||
`a_ip` INT(10) UNSIGNED NOT NULL,
|
||||
`a_computerid` VARCHAR(32) NOT NULL,
|
||||
`who` VARCHAR(2048) NOT NULL,
|
||||
`adminwho` VARCHAR(2048) NOT NULL,
|
||||
`edits` TEXT NULL DEFAULT NULL,
|
||||
`unbanned_datetime` DATETIME NULL DEFAULT NULL,
|
||||
`unbanned_ckey` VARCHAR(32) NULL DEFAULT NULL,
|
||||
`unbanned_ip` INT(10) UNSIGNED NULL DEFAULT NULL,
|
||||
`unbanned_computerid` VARCHAR(32) NULL DEFAULT NULL,
|
||||
`unbanned_round_id` INT(11) UNSIGNED NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_ban_isbanned` (`ckey`,`role`,`unbanned_datetime`,`expiration_time`),
|
||||
KEY `idx_ban_isbanned_details` (`ckey`,`ip`,`computerid`,`role`,`unbanned_datetime`,`expiration_time`),
|
||||
KEY `idx_ban_count` (`bantime`,`a_ckey`,`applies_to_admins`,`unbanned_datetime`,`expiration_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
----------------------------------------------------
|
||||
|
||||
Version 4.7, 18 August 2018, by CitrusGender
|
||||
@@ -50,8 +293,7 @@ Added table `role_time_log` and triggers `role_timeTlogupdate`, `role_timeTlogin
|
||||
|
||||
CREATE TABLE `role_time_log` ( `id` BIGINT NOT NULL AUTO_INCREMENT , `ckey` VARCHAR(32) NOT NULL , `job` VARCHAR(128) NOT NULL , `delta` INT NOT NULL , `datetime` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`), INDEX (`ckey`), INDEX (`job`), INDEX (`datetime`)) ENGINE = InnoDB;
|
||||
|
||||
DELIMITER
|
||||
$$
|
||||
DELIMITER $$
|
||||
CREATE TRIGGER `role_timeTlogupdate` AFTER UPDATE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (NEW.CKEY, NEW.job, NEW.minutes-OLD.minutes);
|
||||
END
|
||||
$$
|
||||
@@ -61,7 +303,7 @@ $$
|
||||
CREATE TRIGGER `role_timeTlogdelete` AFTER DELETE ON `role_time` FOR EACH ROW BEGIN INSERT into role_time_log (ckey, job, delta) VALUES (OLD.ckey, OLD.job, 0-OLD.minutes);
|
||||
END
|
||||
$$
|
||||
|
||||
DELIMITER ;
|
||||
----------------------------------------------------
|
||||
|
||||
Version 4.2, 17 April 2018, by Jordie0608
|
||||
|
||||
Reference in New Issue
Block a user