using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace DeepDrftData.Migrations { /// // Data-only migration: no schema change, snapshot unchanged. public partial class SoftDeleteOrphanedReleases : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { // Backfill: soft-delete any live release whose tracks were all soft-deleted before the // delete-cascade in UnifiedTrackService existed. These show as 0-track rows in the albums // browser; this clears the pre-existing orphans the cascade now prevents going forward. migrationBuilder.Sql(@" UPDATE release SET is_deleted = true, updated_at = now() WHERE id IN ( SELECT r.id FROM release r WHERE r.is_deleted = false AND NOT EXISTS ( SELECT 1 FROM track t WHERE t.release_id = r.id AND t.is_deleted = false ) );"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.Sql("-- no-op: orphaned release soft-deletes are not rolled back"); } } }