Skip to content

Backup/restore: backup sync, --adopt-store, --prune-missing, the sqlite-memory startup sync #746

Open

Description

@robinnsc

The catalog-loss recovery of design section 4(g) (#396): extenddb backup sync lists the configured store's root, checks each <account>/<table>/<backup_id>/ prefix against the catalog, verifies the manifest, its sidecar and its data files, and inserts an AVAILABLE row with an insert-if-absent (BackupCatalog::insert_backup_row on all four backends). --prune-missing moves an AVAILABLE row whose manifest is gone to DELETING. --adopt-store takes over a root whose identity file names another catalog (4(c)). A sqlite-memory server adopts and syncs its previous run's root at startup. The cross-backend matrix replaces its hand-seeded backup_index row with the command. The SQLite serve lock and the maintenance claim apply as for backup purge.

The design's PR 10 is split into three PRs; this is the first. --move-store, --forget-store and --forget-backup follow in #820, and migrate-legacy in #821. backup remove-target shipped with PR 9 (#740).

Part of #624. Depends on PR 9 (#740).

Activity

  1. added this to the 1.0 milestone on Nov 2, 2026
  2. added
    v1Needed for the 1.0 release
    release-blockerMust ship for its milestone's release
    on Nov 3, 2026
  3. changed the title [-]Backup/restore: backup sync and its options, migrate-legacy[/-] [+]Backup/restore: backup sync, --adopt-store, --prune-missing, the sqlite-memory startup sync[/+] on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

release-blockerMust ship for its milestone's releasev1Needed for the 1.0 release

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions