byteanvil2.4.1Sign in

Store migration

The on-disk format has a version. It has moved twice - at 1.0.0 and again at 2.0.0 - and a 2.4.x binary will offer to upgrade an older store in place. Upgrades are forward-only; keep a copy of anything you cannot rebuild before you confirm.

Format history

FormatShipped inWhat changed
10.1.0First layout: payload + flat metadata file per version.
21.0.0Metadata became manifest.json; digests moved to the sha256: prefix form.
42.0.0Detached manifest.sig added; format jumped to 4 to leave room, 3 was never shipped.

Yes, there is no format 3. An internal build used the number and it was easier to skip it than to argue about it.

Upgrading

anvil migrate --store /srv/artifacts --dry-run   # reports what will be rewritten
anvil migrate --store /srv/artifacts              # rewrites in place, prints new format

A dry run walks every version directory and prints the ones that need rewriting, without touching them. The real run rewrites metadata and, for the 2→4 step, generates signatures with your configured key. Payloads are never rewritten; their digests are what anchors the whole thing.

Downgrade

There is none. An old binary pointed at a format-4 store exits 6 and says so rather than guessing. If you must run an old client, migrate a copy of the store, not the original.