diff --git a/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240711213718_RemoveExtraneousUserColumns.cs b/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240711213718_RemoveExtraneousUserColumns.cs index 1ea5f860..5c730540 100644 --- a/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240711213718_RemoveExtraneousUserColumns.cs +++ b/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240711213718_RemoveExtraneousUserColumns.cs @@ -13,9 +13,10 @@ namespace Iceshrimp.Backend.Core.Database.Migrations /// protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.DropIndex( - name: "IX_user_token", - table: "user"); + migrationBuilder.Sql(""" + ALTER TABLE "user" DROP CONSTRAINT IF EXISTS "IX_user_token"; + DROP INDEX IF EXISTS "IX_user_token"; + """); migrationBuilder.DropColumn( name: "hideOnlineStatus", diff --git a/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240712174827_ConvertConstraintsToUniqueIndicies.cs b/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240712174827_ConvertConstraintsToUniqueIndicies.cs new file mode 100644 index 00000000..8e1cd6ca --- /dev/null +++ b/Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240712174827_ConvertConstraintsToUniqueIndicies.cs @@ -0,0 +1,39 @@ +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Infrastructure; + +#nullable disable + +namespace Iceshrimp.Backend.Core.Database.Migrations +{ + /// + [DbContext(typeof(DatabaseContext))] + [Migration("20240712174827_ConvertConstraintsToUniqueIndicies")] + public partial class ConvertConstraintsToUniqueIndicies : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql(""" + ALTER TABLE "user" DROP CONSTRAINT IF EXISTS "IX_user_avatarId"; + ALTER TABLE "user" DROP CONSTRAINT IF EXISTS "IX_user_bannerId"; + ALTER TABLE "user_profile" DROP CONSTRAINT IF EXISTS "IX_user_profile_pinnedPageId"; + CREATE UNIQUE INDEX IF NOT EXISTS "IX_user_avatarId" ON "user" ("avatarId"); + CREATE UNIQUE INDEX IF NOT EXISTS "IX_user_bannerId" ON "user" ("bannerId"); + CREATE UNIQUE INDEX IF NOT EXISTS "IX_user_profile_pinnedPageId" ON "user_profile" ("pinnedPageId"); + """); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.Sql(""" + DROP INDEX "IX_user_avatarId"; + DROP INDEX "IX_user_bannerId"; + DROP INDEX "IX_user_profile_pinnedPageId"; + ALTER TABLE "user" ADD CONSTRAINT "IX_user_avatarId" UNIQUE ("avatarId"); + ALTER TABLE "user" ADD CONSTRAINT "IX_user_bannerId" UNIQUE ("bannerId"); + ALTER TABLE "user_profile" ADD CONSTRAINT "IX_user_profile_pinnedPageId" UNIQUE ("pinnedPageId"); + """); + } + } +}