chore(submodule): bump backend to 099fc84 (NEH-105) - #247
Merged
Conversation
Brings in NEH-105: collections.export_version / last_exported_at / last_export_hash are dropped, closing the schema-vs-model drift that made every autogenerate propose deleting them, and with it NEH-40. Also adds `pixi run db-check-drift` (alembic check) and documents the check in DEVELOPMENT.md. Gitlink only — frontend stays at 387a291, already level with its dev tip.
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Advances the backend pointer to the current
devtip. Gitlink only — no other files change.backend (2 commits)
collections.export_version,last_exported_atandlast_export_hashare dropped. They had been in the database sincedda9bc1bc608(May) without ever being declared on theCollectionmodel, so every--autogenerateproposed deleting them; therecord_annotationsmigration hit exactly that on 22 July and the drop had to be removed by hand. They are dropped rather than modelled because export state already lives on the filesystem — the download endpoint resolves the latest export by globbingcollection_{id}_{timestamp}.zip— and because when export needs real persistence (BagIt export is synchronous, stages a full copy through /tmp, and never prunes old exports #108's async jobs and pruning) it will want one row per export, not latest-only columns on the parent. (backend Capture manifest written to the raw project path while images go to the sanitized path #63)pixi run db-check-drift(alembic checkafterdb-upgrade), plus thedocker compose execequivalent and sharpened migration-review guidance inDEVELOPMENT.md.This closes #58 (Backend build, deps & schema hygiene) — #123 was its last open child.
Verification. Against a dev database at head: the three columns held
export_version = 0with the other two NULL, so nothing was lost;alembic checkthen reportedNo new upgrade operations detected, confirming these were the only disagreement between the models and the database; and adowngrade -1/upgrade headround trip restored the columns with their original types, nullability and0default before re-dropping them.Hardware validation happens at the dev→main promotion, so this lands on
devwithout a bench-Pi run, as usual. The migration is a column drop on provably empty columns with an exact downgrade, andupdate.shtakes apg_dumpbefore migrating (#115).Still outstanding from #123's original acceptance criterion: enforcing the drift check in CI. There is no backend CI to enforce it in — the backend has no
.github/workflows, and nothing anywhere stands up Postgres. That harness needs its own issue.