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