openvibers/openvibe.host Commits

Compatibility register: C-89 closed. The SQLite files of the 19 services on PostgreSQL (and older pre-migration backups, Billing's stale Live snapshot) are archived off-host (ovhost archive 20260929-124813, 44 files, restore verified) and deleted from the host (plan T1).

OP OpenVibers committed 29 Sept 2026 · 9feaac550c · 1 file, +1 −19


Changes

ddiff --git a/docs/compatibility-register.md b/docs/compatibility-register.md
iindex 313879e..3726621 100644
---- a/docs/compatibility-register.md
++++ b/docs/compatibility-register.md
@@@ -140,25 +140,7 @@ Each service that moves keeps its SQLite file read-only for the 7-day N-1 window
| # | What | Where | Owner | Removal condition | Target | Rollback lever until then |
|---|---|---|---|---|---|---|
--| C-89 tips | Tips' SQLite file after the switch to PostgreSQL (2026-09-28 12:46 UTC, release `9987de4`; import verified, 139 interactions, 4 goals, 143 migration maps). Also a pre-switch backup `tips.pre-postgres-20260928T124635Z.db` | `/var/lib/openvibe-tips/tips.db` (0400) | Tips | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback tips` to `3cc8c83` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 wiki | Wiki's SQLite file after the switch to PostgreSQL (2026-09-28 13:29 UTC, release `ec90476`; import verified: 2 spaces, 11 pages, 13 revisions, 24 citations, 10 discussion refs, 50 outbox events). Also `wiki.pre-postgres-20260928T132947Z.db` | `/var/lib/openvibe-wiki/wiki.db` (0400) | Wiki | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback wiki` to `a81573f` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 blog | Blog's SQLite file after the switch to PostgreSQL (2026-09-28 13:52 UTC, release `8c8259f`; import verified: 3 blogs, 32 posts, 34 revisions, 1583 changelog entries, 15 patch-notes posts). Also `blog.pre-postgres-20260928T135215Z.db` | `/var/lib/openvibe-blog/blog.db` (0400) | Blog | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback blog` to `9f339e3` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 news | News' SQLite file after the switch to PostgreSQL (2026-09-28 14:22 UTC, release `cf653dd`; import verified: 12 topics, 1587 ingest runs, the Sources cursor; no stories yet). The service was stopped for the import, so the file is the pre-switch state | `/var/lib/openvibe-news/news.db` (0400) | News | 7 days without a rollback: `ovhost archive push` the file, then delete | 2026-10-05 | `sudo ovhost rollback news` to `cb6d79e` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 deals | Deals' SQLite file after the switch to PostgreSQL (2026-09-28 14:33 UTC, release `69d3e47`; import verified, every table empty in production). Also `deals.pre-postgres-20260928T143328Z.db` | `/var/lib/openvibe-deals/deals.db` (0400) | Deals | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback deals` to `0bf25e2` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 coupons | Coupons' SQLite file after the switch to PostgreSQL (2026-09-28 14:42 UTC, release `040dc3e`; import verified: the Sources import cursor, no codes yet). Also `coupons.pre-postgres-20260928T144235Z.db` | `/var/lib/openvibe-coupons/coupons.db` (0400) | Coupons | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback coupons` to `168262d` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 trade | Trade's SQLite file after the switch to PostgreSQL (2026-09-28 15:03 UTC, release `e140fcb`; import verified: the Sources sync cursor, one source status, one outbox event). Also `trade.pre-postgres-20260928T150320Z.db` | `/var/lib/openvibe-trade/trade.db` (0400) | Trade | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback trade` to `d515e46` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 reviews | Reviews' SQLite file after the switch to PostgreSQL (2026-09-28 15:05 UTC, release `756f62e`; import verified: the Sources sync state, no entities yet). Also `reviews.pre-postgres-20260928T150520Z.db` | `/var/lib/openvibe-reviews/reviews.db` (0400) | Reviews | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback reviews` to `8416fcb` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 search | Search's SQLite file after the switch to PostgreSQL (2026-09-28 15:41 UTC, release `fa45c65`; import verified: 2,178 documents, 12,393 facets, 2,959 outbox events, 2,815 receipts; the full-text index rebuilt itself at boot to 1,984 public listed documents, with FTS5's match counts). Also `search.pre-postgres-20260928T154149Z.db` | `/var/lib/openvibe-search/search.db` (0400) | Search | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback search` to `04f9fd4` (reads the SQLite file); documents indexed on PostgreSQL since the switch are re-sent by their owners' reconciliation |
--| C-89 sources | Sources' SQLite file after the switch to PostgreSQL (2026-09-28 16:00 UTC, release `cee509c`; import verified: the six registered sources). Also `sources.pre-postgres-20260928T160039Z.db` | `/var/lib/openvibe-sources/sources.db` (0400) | Sources | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback sources` to `6e1185e` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 codes | Codes' SQLite file after the switch to PostgreSQL (2026-09-28 16:09 UTC, release `6329b53`; import verified: 7 releases, 7 manifests, 28 log entries, 21 outbox events). Also `codes.pre-postgres-20260928T160941Z.db` | `/var/lib/openvibe-codes/codes.db` (0400) | Codes | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback codes` to `1246445` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 vip | VIP's SQLite file after the switch to PostgreSQL (2026-09-28 16:47 UTC, release `9ff4277`; import verified: 45 creators, 43 plans and versions, 87 migration maps, 43 outbox events, bindings and the entitlement projection). Also `vip.pre-postgres-20260928T164746Z.db` | `/var/lib/openvibe-vip/vip.db` (0400) | VIP | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback vip` to `63f46fa` (reads the SQLite file); writes made on PostgreSQL since the switch need replaying |
--| C-89 ai | AI's SQLite file after the switch to PostgreSQL (2026-09-28 17:05 UTC, release `af9166a`; import verified on PostgreSQL: 9,219 runs, 1,866 requests, 9,507 audit rows, 9,705 outbox events, 79,657 ledger rows, two person credentials). A first attempt at 17:04 stopped before importing (the script sourced the env file with bash; it now reads the unit's environment through systemd-run) and started the old release again. Backups `ai.pre-postgres-20260928T170440Z.db` and `ai.pre-postgres-20260928T170515Z.db` | `/var/lib/openvibe-ai/ai.db` (0400) | AI | 7 days without a rollback: `ovhost archive push` the files, then delete | 2026-10-05 | `sudo ovhost rollback ai` to `f6fdbc9` (reads the SQLite file); runs made on PostgreSQL since the switch need replaying |
--| C-89 host | Host Stage B's SQLite file after the switch to PostgreSQL (2026-09-28 17:08 UTC, release `03d70e1`; import verified, every table empty in production). Also `host.pre-postgres-20260928T170836Z.db` | `/var/lib/openvibe-host-api/host.db` (0400) | Host | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback host` to `45f3d15` (reads the SQLite file) |
--| C-89 events | Events' SQLite file after the switch to PostgreSQL (2026-09-28 18:31 UTC, release `7bcccebe`; import verified: 18,722 events, 3,752 deliveries, 71 subscriptions, 18,722 receipts, the sequence row; the first event after it took seq 18,723). A first attempt at 17:58 imported, then the release failed to start (`iovalkey` missing) and ovhost restarted the SQLite release, which kept writing to the file; the second import started from that file again. Also `events.pre-postgres-20260928T175818Z.db` and `events.pre-postgres-20260928T183123Z.db` | `/var/lib/openvibe-events/events.db` (0400) | Events | 7 days without a rollback: `ovhost archive push` the three files, then delete | 2026-10-05 | `sudo ovhost rollback events` to `7c575cd` (reads the SQLite file; events published since the switch would be lost, so re-import them first) |
--| C-89 community | Community's SQLite file after the switch to PostgreSQL (2026-09-28 19:41 UTC, release `8f021e6`; import verified: 925 pastes, 1,280 paste visits, 269 comment threads, 991 legacy ids, 1,765 outbox events, 36 tables with counts and checksums). Also `community.pre-postgres-20260928T194145Z.db` | `/var/lib/openvibe-community/community.db` (0400) | Community | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback community` to `581d805` (reads the SQLite file; comments, posts and pastes written since the switch would be lost, so export them first) |
--| C-89 billing | Billing's SQLite ledger after the switch to PostgreSQL (2026-09-28 22:22 UTC, release `5fc1af3`; import verified: 322 transactions, 996 ledger entries, 22 accounts and balances, 140 reconciliation runs, counts and checksums as the rehearsal on a production copy; the first reconciliation on PostgreSQL passed all 10 checks). Billing is in shadow (Live keeps the money authority). Also `billing.pre-postgres-20260928T222239Z.db` | `/var/lib/openvibe-billing/billing.db` (0400) | Billing | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback billing` to `1f9df56` (reads the SQLite file; anything booked since the switch would be lost, so reconcile and export first) |
--| C-89 media | Media's SQLite file after the switch to PostgreSQL (2026-09-28 22:54 UTC, release `e3f2239`; import verified, counts and checksums as the rehearsal on a production copy: 3,173 media objects, 2,998 locations, 1,021 variants, 1,321 relationships, 792 vods, 324 clips, 891 pastes, 291 jobs, 789 outbox events, 29 tables with rows). The switch waited for recordings to be idle (switch-service.sh `019d853`). Also `media.pre-postgres-20260928T225438Z.db` | `/opt/openvibe.media/data/media.db` (0400) | Media | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback media` to `47b21bd` (reads the SQLite file; objects, jobs and views written since the switch would be lost, so export them first) |
--| C-89 openre | OpenRe.Stream's SQLite file after the switch to PostgreSQL (2026-09-28 23:32 UTC, release `405682c`; import verified: 1 stream definition, 1 key, 1 session and its 4 transitions, 10 worker rows, 2 outbox events; every OpenRe unit stopped for the import through `SWITCH_UNITS`; worker generation 6 started after). Also `openre.pre-postgres-20260928T233208Z.db` | `/var/lib/openre/openre.db` (0400) | OpenRe | 7 days without a rollback: `ovhost archive push` both files, then delete | 2026-10-05 | `sudo ovhost rollback openre` to `d9f4240` and `deploy.sh workers` (reads the SQLite file; definitions and keys created since the switch would be lost) |
++| C-89 | **Closed 2026-09-29 (plan T1):** the SQLite files of the 19 services that moved to PostgreSQL on 2026-09-28 (post-switch files and pre-switch backups: tips, wiki, blog, news, deals, coupons, trade, reviews, search, sources, codes, vip, ai, host, events, community, billing, media, openre), Community's pre-c24/pre-live-comments backups and Billing's `live-snapshot-202609230121.db` are archived off-host (`ovhost archive` `20260929-124813`: 44 files, 805 MB encrypted; a restore of `codes.db` verified byte for byte) and deleted from the host. The rollback is `ovhost archive restore 20260929-124813 <path> --out <dir>` plus a release older than the switch. | the archive | Host | — | done | `ovhost archive restore` |
**Archive step unblocked (2026-09-28).** `ovhost archive push` refuses a path the inventory declares as a
live SQLite database (`lib/archive.js`: it refuses a file that is any non-postgresql `databases[].path`).