mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-07-12 03:12:11 +02:00
docs: self-service upgrade message + gated cross-version test (on-demand)
The storage-format refusal now names the release line that wrote each internal-schema stamp (e.g. v3 -> 0.6.2-0.7.2) plus the exact export/init/load commands — fail-closed but self-service; the message is engine-shared so server boot-quarantine and cluster status get it free. Adds the OMNIGRAPH_OLD_BIN-gated cross-version test: mint a GENUINE v3 graph with a real omnigraph-cli 0.7.2 binary, assert the current binary refuses it with the release-named message, and the documented rebuild round-trips. Deliberately NOT wired into CI (the write_cost_s3 disposition): compiling 0.7.2 from source is a 15-25 min job and the stamp seam changes a few times a year — testing.md documents the on-demand invocation instead. Rebased onto current main across the Lance 9.0.0-beta.15 migration; validated locally against a genuine 0.7.2 binary — the v3 round-trip passes on the Lance-9 main, which also makes it a live cross-substrate read-compat check (a Lance-9 binary reading a Lance-7-written manifest to find the stamp).
This commit is contained in:
parent
50db10f65c
commit
ca2ad974e1
9 changed files with 1501 additions and 11 deletions
|
|
@ -12,16 +12,31 @@ changing) is in [docs/dev/versioning.md](../../dev/versioning.md).
|
|||
|
||||
## How you know you need this
|
||||
|
||||
Opening a graph whose stamp is below the binary's version fails with:
|
||||
Opening a graph whose stamp is below the binary's version fails with a
|
||||
message that **names the release line that wrote it** and the exact commands —
|
||||
so you can fetch the right old binary without guessing:
|
||||
|
||||
```
|
||||
__manifest is stamped at internal schema vN, but this omnigraph reads only vM.
|
||||
This graph was created by an older omnigraph release; rebuild it: run `omnigraph
|
||||
export` with the older omnigraph binary that created it, then `omnigraph init` +
|
||||
`omnigraph load` with this one. (Data, vectors, and blobs are preserved; commit
|
||||
history and branches are not.)
|
||||
__manifest is stamped at internal schema v3, but this omnigraph reads only v4.
|
||||
This graph was created by omnigraph 0.6.2 to 0.7.2. Rebuild it: with an omnigraph
|
||||
0.6.2 to 0.7.2 binary run `omnigraph export <graph> > graph.jsonl`, then with this
|
||||
binary run `omnigraph init --schema <schema.pg> <new-graph>` and `omnigraph load
|
||||
--mode overwrite --data graph.jsonl <new-graph>`. (Data, vectors, and blobs are
|
||||
preserved; commit history and branches are not.) See docs/user/operations/upgrade.md.
|
||||
```
|
||||
|
||||
### Which old binary do I need?
|
||||
|
||||
The on-disk stamp maps to the release line that wrote it. Export with any binary
|
||||
from that line (the latest is safest):
|
||||
|
||||
| On-disk stamp | Written by | Export with |
|
||||
|---|---|---|
|
||||
| internal schema v1 | omnigraph ≤ 0.3.1 | any 0.3.1-or-earlier binary |
|
||||
| internal schema v2 | omnigraph 0.4.1–0.6.1 | the latest 0.6.x (e.g. 0.6.1) |
|
||||
| internal schema v3 | omnigraph 0.6.2–0.7.2 | the latest 0.7.x (e.g. 0.7.2) |
|
||||
| internal schema v4 | omnigraph 0.8.x and later | — current format; no rebuild needed |
|
||||
|
||||
You can also check versions before you hit a refusal:
|
||||
|
||||
- `omnigraph version` — the binary's served version (the `internal-schema <N>` line).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue