From b7646f4d6cd1ebbfe8f68b9bffb099ab622b9622 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Fri, 12 Jul 2024 21:02:51 +0200 Subject: [PATCH] [backend/database] Resync constraint/index differences between native .net databases and ones migrated from -js --- ...40711213718_RemoveExtraneousUserColumns.cs | 7 ++-- ...4827_ConvertConstraintsToUniqueIndicies.cs | 39 +++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 Iceshrimp.Backend/Core/Database/Migrations/v2024.1-beta3/20240712174827_ConvertConstraintsToUniqueIndicies.cs 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"); + """); + } + } +}