using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace Iceshrimp.Backend.Core.Database.Migrations { /// public partial class RemoveHiddenNoteVisibility : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { // We want to set all hidden notes to be specified notes that can only be seen by the author before we remove the enum migrationBuilder.Sql(""" UPDATE "note" SET "visibleUserIds" = '{}', "mentions" = '{}', "visibility" = 'specified' WHERE "visibility" = 'hidden'; UPDATE "poll" SET "noteVisibility" = 'specified' WHERE "noteVisibility" = 'hidden'; ALTER TYPE "public"."note_visibility_enum" RENAME TO "note_visibility_enum_old"; ALTER TYPE "public"."poll_notevisibility_enum" RENAME TO "poll_notevisibility_enum_old"; CREATE TYPE "public"."note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified'); CREATE TYPE "public"."poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified'); ALTER TABLE "note" ALTER COLUMN "visibility" TYPE "public"."note_visibility_enum" USING "visibility"::"text"::"public"."note_visibility_enum"; ALTER TABLE "poll" ALTER COLUMN "noteVisibility" TYPE "public"."poll_notevisibility_enum" USING "noteVisibility"::"text"::"public"."poll_notevisibility_enum"; DROP TYPE "public"."note_visibility_enum_old"; DROP TYPE "public"."poll_notevisibility_enum_old"; """); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.Sql(""" ALTER TYPE "public"."note_visibility_enum" RENAME TO "note_visibility_enum_old"; ALTER TYPE "public"."poll_notevisibility_enum" RENAME TO "poll_notevisibility_enum_old"; CREATE TYPE "public"."note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified', 'hidden'); CREATE TYPE "public"."poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified', 'hidden'); ALTER TABLE "note" ALTER COLUMN "visibility" TYPE "public"."note_visibility_enum" USING "visibility"::"text"::"public"."note_visibility_enum"; ALTER TABLE "poll" ALTER COLUMN "noteVisibility" TYPE "public"."poll_notevisibility_enum" USING "noteVisibility"::"text"::"public"."poll_notevisibility_enum"; DROP TYPE "public"."note_visibility_enum_old"; DROP TYPE "public"."poll_notevisibility_enum_old"; """); } } }