fix(db): register legacy task migrations
CI - Build & Test / Backend (.NET) (push) Successful in 50s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 58s
CI - Build & Test / Frontend (Vue/TS) (push) Has been cancelled
CI - Build & Test / Security Check (push) Has been cancelled
CI - Build & Test / Deploy Nexus (push) Has been cancelled

This commit is contained in:
AzuTear
2026-08-01 01:44:52 +02:00
parent 3dac335767
commit bf32a7def2
5 changed files with 95 additions and 52 deletions
@@ -1,49 +1,59 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Nexus.Api.Data;
#nullable disable
namespace Nexus.Api.Migrations
{
/// <inheritdoc />
[DbContext(typeof(NexusDbContext))]
[Migration("20260618233000_AddTaskParentChild")]
public partial class AddTaskParentChild : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "ParentTaskId",
table: "Tasks",
type: "uuid",
nullable: true);
// This historical migration originally lacked EF discovery
// metadata. Keep the catch-up operations idempotent so existing
// installations and fresh PostgreSQL databases converge safely.
migrationBuilder.Sql(
"""
ALTER TABLE "Tasks"
ADD COLUMN IF NOT EXISTS "ParentTaskId" uuid;
migrationBuilder.CreateIndex(
name: "IX_Tasks_ParentTaskId",
table: "Tasks",
column: "ParentTaskId");
CREATE INDEX IF NOT EXISTS "IX_Tasks_ParentTaskId"
ON "Tasks" ("ParentTaskId");
migrationBuilder.AddForeignKey(
name: "FK_Tasks_Tasks_ParentTaskId",
table: "Tasks",
column: "ParentTaskId",
principalTable: "Tasks",
principalColumn: "Id",
onDelete: ReferentialAction.SetNull);
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'FK_Tasks_Tasks_ParentTaskId'
AND conrelid = '"Tasks"'::regclass
) THEN
ALTER TABLE "Tasks"
ADD CONSTRAINT "FK_Tasks_Tasks_ParentTaskId"
FOREIGN KEY ("ParentTaskId")
REFERENCES "Tasks" ("Id")
ON DELETE SET NULL;
END IF;
END $$;
""");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Tasks_Tasks_ParentTaskId",
table: "Tasks");
migrationBuilder.DropIndex(
name: "IX_Tasks_ParentTaskId",
table: "Tasks");
migrationBuilder.DropColumn(
name: "ParentTaskId",
table: "Tasks");
migrationBuilder.Sql(
"""
ALTER TABLE "Tasks"
DROP CONSTRAINT IF EXISTS "FK_Tasks_Tasks_ParentTaskId";
DROP INDEX IF EXISTS "IX_Tasks_ParentTaskId";
ALTER TABLE "Tasks"
DROP COLUMN IF EXISTS "ParentTaskId";
""");
}
}
}
@@ -1,28 +1,34 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Nexus.Api.Data;
#nullable disable
namespace Nexus.Api.Migrations
{
/// <inheritdoc />
[DbContext(typeof(NexusDbContext))]
[Migration("20260618233001_AddTaskDueDate")]
public partial class AddTaskDueDate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTimeOffset>(
name: "DueDate",
table: "Tasks",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.Sql(
"""
ALTER TABLE "Tasks"
ADD COLUMN IF NOT EXISTS "DueDate" timestamp with time zone;
""");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DueDate",
table: "Tasks");
migrationBuilder.Sql(
"""
ALTER TABLE "Tasks"
DROP COLUMN IF EXISTS "DueDate";
""");
}
}
}
@@ -1,37 +1,38 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Nexus.Api.Data;
#nullable disable
namespace Nexus.Api.Migrations
{
/// <inheritdoc />
[DbContext(typeof(NexusDbContext))]
[Migration("20260618233002_AddActivityTaskReference")]
public partial class AddActivityTaskReference : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "TaskId",
table: "Activity",
type: "uuid",
nullable: true);
migrationBuilder.Sql(
"""
ALTER TABLE "Activity"
ADD COLUMN IF NOT EXISTS "TaskId" uuid;
migrationBuilder.CreateIndex(
name: "IX_Activity_TaskId",
table: "Activity",
column: "TaskId");
CREATE INDEX IF NOT EXISTS "IX_Activity_TaskId"
ON "Activity" ("TaskId");
""");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_Activity_TaskId",
table: "Activity");
migrationBuilder.DropColumn(
name: "TaskId",
table: "Activity");
migrationBuilder.Sql(
"""
DROP INDEX IF EXISTS "IX_Activity_TaskId";
ALTER TABLE "Activity"
DROP COLUMN IF EXISTS "TaskId";
""");
}
}
}