diff --git a/src/NadekoBot/Migrations/MigrationQueries.cs b/src/NadekoBot/Migrations/MigrationQueries.cs index c111b76f3..2a11231e7 100644 --- a/src/NadekoBot/Migrations/MigrationQueries.cs +++ b/src/NadekoBot/Migrations/MigrationQueries.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Migrations; namespace NadekoBot.Migrations; @@ -6,11 +7,36 @@ public static class MigrationQueries { public static void MigrateRero(MigrationBuilder migrationBuilder) { - migrationBuilder.Sql( - @"insert or ignore into reactionroles(guildid, channelid, messageid, emote, roleid, 'group', levelreq, dateadded) + if (migrationBuilder.IsMySql()) + { + migrationBuilder.Sql( + @"INSERT IGNORE into reactionroles(guildid, channelid, messageid, emote, roleid, `group`, levelreq, dateadded) select guildid, channelid, messageid, emotename, roleid, exclusive, 0, reactionrolemessage.dateadded from reactionrole left join reactionrolemessage on reactionrolemessage.id = reactionrole.reactionrolemessageid left join guildconfigs on reactionrolemessage.guildconfigid = guildconfigs.id;"); + } + else if (migrationBuilder.IsSqlite()) + { + migrationBuilder.Sql( + @"insert or ignore into reactionroles(guildid, channelid, messageid, emote, roleid, 'group', levelreq, dateadded) +select guildid, channelid, messageid, emotename, roleid, exclusive, 0, reactionrolemessage.dateadded +from reactionrole +left join reactionrolemessage on reactionrolemessage.id = reactionrole.reactionrolemessageid +left join guildconfigs on reactionrolemessage.guildconfigid = guildconfigs.id;"); + } + else if (migrationBuilder.IsNpgsql()) + { + migrationBuilder.Sql(@"insert into reactionroles(guildid, channelid, messageid, emote, roleid, ""group"", levelreq, dateadded) + select guildid, channelid, messageid, emotename, roleid, exclusive::int, 0, reactionrolemessage.dateadded + from reactionrole + left join reactionrolemessage on reactionrolemessage.id = reactionrole.reactionrolemessageid + left join guildconfigs on reactionrolemessage.guildconfigid = guildconfigs.id + ON CONFLICT DO NOTHING;"); + } + else + { + throw new NotSupportedException("This database provider doesn't have an implementation for MigrateRero"); + } } } \ No newline at end of file