Restructure database tables
This commit is contained in:
12676
gb-ipv4.csv
12676
gb-ipv4.csv
File diff suppressed because it is too large
Load Diff
79
migrations/20250506184716_remove_unused_columns.sql
Normal file
79
migrations/20250506184716_remove_unused_columns.sql
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
-- Drop all old tables
|
||||||
|
DROP TABLE IF EXISTS users_old;
|
||||||
|
DROP TABLE IF EXISTS messages;
|
||||||
|
DROP TABLE IF EXISTS embeds;
|
||||||
|
DROP TABLE IF EXISTS embed_fields;
|
||||||
|
DROP TABLE IF EXISTS command_aliases;
|
||||||
|
DROP TABLE IF EXISTS macro;
|
||||||
|
DROP TABLE IF EXISTS roles;
|
||||||
|
|
||||||
|
-- Drop columns from channels that are no longer used
|
||||||
|
ALTER TABLE channels DROP COLUMN `name`;
|
||||||
|
ALTER TABLE channels DROP COLUMN `blacklisted`;
|
||||||
|
|
||||||
|
-- Drop columns from guilds table that are no longer used and rebuild table
|
||||||
|
CREATE TABLE guilds_new (
|
||||||
|
id BIGINT UNSIGNED NOT NULL PRIMARY KEY,
|
||||||
|
ephemeral_confirmations BOOLEAN NOT NULL DEFAULT 0
|
||||||
|
);
|
||||||
|
INSERT INTO guilds_new (id, ephemeral_confirmations) SELECT guild, ephemeral_confirmations FROM guilds;
|
||||||
|
RENAME TABLE guilds TO guilds_old;
|
||||||
|
RENAME TABLE guilds_new TO guilds;
|
||||||
|
|
||||||
|
-- Update fk on channels to point at new guild table
|
||||||
|
ALTER TABLE channels
|
||||||
|
DROP FOREIGN KEY `channels_ibfk_1`,
|
||||||
|
MODIFY COLUMN guild_id BIGINT UNSIGNED,
|
||||||
|
ADD FOREIGN KEY `fk_guild_id` (`guild_id`)
|
||||||
|
REFERENCES `guilds` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE;
|
||||||
|
UPDATE channels SET guild_id = (SELECT guild FROM guilds_old WHERE id = guild_id);
|
||||||
|
|
||||||
|
-- Rebuild todos table
|
||||||
|
CREATE TABLE `todos_new` (
|
||||||
|
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
`guild_id` BIGINT UNSIGNED DEFAULT NULL,
|
||||||
|
`channel_id` INT UNSIGNED DEFAULT NULL,
|
||||||
|
`user_id` BIGINT UNSIGNED DEFAULT NULL,
|
||||||
|
`value` VARCHAR(2000) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
FOREIGN KEY `fk_channel_id` (`channel_id`)
|
||||||
|
REFERENCES `channels` (`id`)
|
||||||
|
ON DELETE SET NULL
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY `fk_guild_id` (`guild_id`)
|
||||||
|
REFERENCES `guilds` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY `fk_user_id` (`user_id`)
|
||||||
|
REFERENCES `users` (`id`)
|
||||||
|
ON DELETE SET NULL
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
INSERT INTO todos_new (id, guild_id, channel_id, user_id, value) SELECT id, (SELECT guild FROM guilds_old WHERE id = guild_id), channel_id, user_id, value FROM todos;
|
||||||
|
RENAME TABLE todos TO todos_old;
|
||||||
|
RENAME TABLE todos_new TO todos;
|
||||||
|
DROP TABLE todos_old;
|
||||||
|
|
||||||
|
-- Update fk on reminder_template to point at new guild table
|
||||||
|
ALTER TABLE reminder_template
|
||||||
|
DROP FOREIGN KEY `reminder_template_ibfk_1`,
|
||||||
|
MODIFY COLUMN guild_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
ADD FOREIGN KEY `fk_guild_id` (`guild_id`)
|
||||||
|
REFERENCES `guilds` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE;
|
||||||
|
UPDATE reminder_template SET guild_id = (SELECT guild FROM guilds_old WHERE id = guild_id);
|
||||||
|
|
||||||
|
-- Update fk on command_macro to point at new guild table
|
||||||
|
ALTER TABLE command_macro
|
||||||
|
DROP FOREIGN KEY `command_macro_ibfk_1`,
|
||||||
|
MODIFY COLUMN guild_id BIGINT UNSIGNED NOT NULL,
|
||||||
|
ADD FOREIGN KEY `fk_guild_id` (`guild_id`)
|
||||||
|
REFERENCES `guilds` (`id`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
ON UPDATE CASCADE;
|
||||||
|
UPDATE command_macro SET guild_id = (SELECT guild FROM guilds_old WHERE id = guild_id);
|
||||||
|
|
||||||
|
DROP TABLE guilds_old;
|
Reference in New Issue
Block a user