forked from EllieBotDevs/elliebot
57 lines
No EOL
2.5 KiB
C#
57 lines
No EOL
2.5 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
namespace EllieBot.Migrations;
|
|
|
|
public static class MigrationQueries
|
|
{
|
|
public static void MigrateRero(MigrationBuilder migrationBuilder)
|
|
{
|
|
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");
|
|
}
|
|
}
|
|
|
|
public static void GuildConfigCleanup(MigrationBuilder builder)
|
|
{
|
|
builder.Sql($"""
|
|
DELETE FROM "StreamRoleBlacklistedUser" WHERE "StreamRoleSettingsId" is NULL;
|
|
""");
|
|
|
|
builder.Sql($"""
|
|
DELETE FROM "DelMsgOnCmdChannel" WHERE "GuildConfigId" is NULL;
|
|
""");
|
|
|
|
builder.Sql("""
|
|
DELETE FROM "WarningPunishment" WHERE "GuildConfigId" NOT IN (SELECT "Id" from "GuildConfigs");
|
|
""");
|
|
}
|
|
} |