diff --git a/JobTrackerApi/Migrations/20260311121000_AddCorrespondenceEmailFields.cs b/JobTrackerApi/Migrations/20260311121000_AddCorrespondenceEmailFields.cs index 563c5de..f85ada6 100644 --- a/JobTrackerApi/Migrations/20260311121000_AddCorrespondenceEmailFields.cs +++ b/JobTrackerApi/Migrations/20260311121000_AddCorrespondenceEmailFields.cs @@ -1,30 +1,22 @@ +using JobTrackerApi.Data; +using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace JobTrackerApi.Migrations { + [DbContext(typeof(JobTrackerContext))] + [Migration("20260311121000_AddCorrespondenceEmailFields")] public partial class AddCorrespondenceEmailFields : Migration { protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.AddColumn( - name: "Subject", - table: "Correspondences", - type: "TEXT", - nullable: true); - - migrationBuilder.AddColumn( - name: "Channel", - table: "Correspondences", - type: "TEXT", - nullable: true); + // Schema is provisioned idempotently by StartupInitializationExtensions. } protected override void Down(MigrationBuilder migrationBuilder) { - migrationBuilder.DropColumn(name: "Subject", table: "Correspondences"); - migrationBuilder.DropColumn(name: "Channel", table: "Correspondences"); } } } diff --git a/JobTrackerApi/Migrations/20260311180000_AddShortSummary.cs b/JobTrackerApi/Migrations/20260311180000_AddShortSummary.cs index 2c41b16..731377c 100644 --- a/JobTrackerApi/Migrations/20260311180000_AddShortSummary.cs +++ b/JobTrackerApi/Migrations/20260311180000_AddShortSummary.cs @@ -1,4 +1,6 @@ using System; +using JobTrackerApi.Data; +using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -6,22 +8,19 @@ using Microsoft.EntityFrameworkCore.Migrations; namespace JobTrackerApi.Migrations { /// + [DbContext(typeof(JobTrackerContext))] + [Migration("20260311180000_AddShortSummary")] public partial class AddShortSummary : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { - migrationBuilder.AddColumn( - name: "ShortSummary", - table: "JobApplications", - type: "TEXT", - nullable: true); + // Schema is provisioned idempotently by StartupInitializationExtensions. } /// protected override void Down(MigrationBuilder migrationBuilder) { - migrationBuilder.DropColumn(name: "ShortSummary", table: "JobApplications"); } } } diff --git a/docs/implementation-roadmap.md b/docs/implementation-roadmap.md index 4dc7a21..755e6cb 100644 --- a/docs/implementation-roadmap.md +++ b/docs/implementation-roadmap.md @@ -44,7 +44,7 @@ Goal: finish surfacing the pre-application workflow in the UI, and close the sec | 1.7 | ✅ **DONE** — onboarding reads structured career-profile collections with raw CV text only as fallback. | **P2** | **XS** | none | Parsed profiles are recognized correctly. | | 1.8 | ✅ **DONE** — full frontend suite is green (142 tests on 2026-07-30). | **P1** | **S** | none | CI has a clean regression baseline. | | 1.9 | **Decide what to do with the `feature/career-workspace` branch.** ✅ *Investigated 2026-07-17 — see below.* The orphan tables are not an abandoned prototype: they are the local footprint of **10 unmerged commits** (local + `origin`, last touched 2026-07-12) containing working, tested code and 1,100 lines of research/strategy. All 7 tables are **empty** in dev, so there is no data to migrate. Branch is **29 commits behind main**. | **P0** | **M** | none | **Blocks Phases 3 and 4 from being planned honestly.** Re-deriving this work would waste weeks; ignoring it leaves a rebase debt that grows every day main moves. See `docs/career-workspace-branch-assessment.md`. | -| 1.10 | **Dev DB is missing 2 migrations** (`AddCorrespondenceEmailFields`, `AddShortSummary`) yet has `SyncModelSnapshot` — the reconciler patched the columns instead. | **P2** | **S** | none | Local-only inconsistency, but it means the dev DB is not a faithful rehearsal for a prod migration. Worth reconciling before the Phase 1 cutover. | +| 1.10 | ✅ **DONE (2026-07-30)** — restored EF identity metadata for the two orphan migrations as safe no-op history markers and brought the development database fully current. | **P2** | **S** | none | The idempotent reconciler remains the schema owner for those legacy columns; EF migration history is now complete with no pending migrations. | **Phase 1 exit:** a user can save a job they have not applied to, walk the wizard, prepare materials, and *then* mark it applied — visibly, in the UI. CI is green.