-- Drop existing constraint
ALTER TABLE `reminders` DROP CONSTRAINT `reminders_ibfk_1`;

ALTER TABLE `reminders` MODIFY COLUMN `channel_id` INT UNSIGNED;
ALTER TABLE `reminders` ADD COLUMN `guild_id` INT UNSIGNED;

ALTER TABLE `reminders`
    ADD CONSTRAINT `guild_id_fk`
        FOREIGN KEY (`guild_id`)
        REFERENCES `guilds`(`id`)
        ON DELETE CASCADE;

ALTER TABLE `reminders`
    ADD CONSTRAINT `channel_id_fk`
        FOREIGN KEY (`channel_id`)
        REFERENCES `channels`(`id`)
        ON DELETE SET NULL;

UPDATE `reminders` SET `guild_id` = (SELECT guilds.`id` FROM `channels` INNER JOIN `guilds` ON channels.guild_id = guilds.id WHERE reminders.channel_id = channels.id);
