From 88307edc9a0df970d6533a681448ed02e40895ce Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 13 Nov 2025 03:09:48 +0000 Subject: [PATCH] fix: Make migration for IssueNumber column idempotent in MagazineIssues table --- .../20200808135203_AddMagazineIssueNumber.cs | 36 ++++++++++++++++--- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/Marechai.Database/Migrations/20200808135203_AddMagazineIssueNumber.cs b/Marechai.Database/Migrations/20200808135203_AddMagazineIssueNumber.cs index 685190e4..2ce2a84e 100644 --- a/Marechai.Database/Migrations/20200808135203_AddMagazineIssueNumber.cs +++ b/Marechai.Database/Migrations/20200808135203_AddMagazineIssueNumber.cs @@ -1,13 +1,39 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; namespace Marechai.Database.Migrations { public partial class AddMagazineIssueNumber : Migration { - protected override void Up(MigrationBuilder migrationBuilder) => - migrationBuilder.AddColumn("IssueNumber", "MagazineIssues", nullable: true); + protected override void Up(MigrationBuilder migrationBuilder) + { + // Check if the column already exists before adding it (idempotent) + migrationBuilder.Sql(@" + IF NOT EXISTS ( + SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'MagazineIssues' + AND COLUMN_NAME = 'IssueNumber' + ) + THEN + ALTER TABLE `MagazineIssues` ADD `IssueNumber` int unsigned NULL; + END IF; + "); + } - protected override void Down(MigrationBuilder migrationBuilder) => - migrationBuilder.DropColumn("IssueNumber", "MagazineIssues"); + protected override void Down(MigrationBuilder migrationBuilder) + { + // Check if the column exists before dropping it (idempotent) + migrationBuilder.Sql(@" + IF EXISTS ( + SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'MagazineIssues' + AND COLUMN_NAME = 'IssueNumber' + ) + THEN + ALTER TABLE `MagazineIssues` DROP COLUMN `IssueNumber`; + END IF; + "); + } } } \ No newline at end of file