Migration reruns and publication
Verify step identity, rollback material and committed publication state.
Why did rerunning a migration multiply already converted values again?
Use the recorded source representation state to convert each old-form row once.
Why does a migration fail on a similarly named schema version?
Check the actual predecessor columns and supplied version before applying a step.
Why does the migration ledger say V2 when the data update failed?
Commit the version marker and its actual data mutation in the same transaction.
Why can a grouped migration not restore the original labels by itself?
Retain the preimage needed for an exact data rollback through a lossy transition.
Why did editing an old field leave its new representation inconsistent?
Enforce the supplied old-field authority and update both representations atomically.
Why did a partial replacement become the active dataset?
Keep the original active until the candidate load and finite publication checks commit together.
Why must an already named migration be held when its script changes?
Compare the stored script fingerprint before recognising a completed step.
Why did splitting a migration script break a memo containing a semicolon?
Let the SQL engine read complete statements rather than splitting inside quoted data.