Multi-Database Sync
One process watches multiple SQLite databases with minimal memory overhead.
Command Line
Section titled “Command Line”Pass multiple database paths:
walrust watch \ /data/users.db \ /data/orders.db \ /data/analytics.db \ -b my-bucketOr use a glob:
walrust watch /data/tenants/*.db -b my-bucketConfig File
Section titled “Config File”For more control, use a config file:
[s3]bucket = "my-bucket"endpoint = "https://fly.storage.tigris.dev"
[[databases]]path = "/data/users.db"prefix = "users"
[[databases]]path = "/data/orders.db"prefix = "orders"
[[databases]]path = "/data/tenants/*.db"prefix = "tenants"Then:
walrust watch --config walrust.tomlS3 Layout
Section titled “S3 Layout”Each database gets its own prefix:
s3://my-bucket/├── users/│ ├── 00000001-00000001.ltx│ └── manifest.json├── orders/│ ├── 00000001-00000001.ltx│ └── manifest.json└── tenants/ ├── acme/ │ └── ... └── globex/ └── ...Memory Usage
Section titled “Memory Usage”| Databases | Litestream | Walrust | Reduction |
|---|---|---|---|
| 1 | 36 MB | 19 MB | 47% |
| 10 | 55 MB | 19 MB | 65% |
| 100 | 160 MB | 20 MB | 88% |
Walrust shares one S3 client and one file watcher across all databases. Memory remains ~19-20 MB regardless of database count.
Restoring Individual Databases
Section titled “Restoring Individual Databases”Restore any single database without touching the others:
walrust restore users -o /data/users-restored.db -b my-bucketwalrust restore tenants/acme -o /data/acme-restored.db -b my-bucketPer-Database Settings
Section titled “Per-Database Settings”Override settings per database in the config:
[[databases]]path = "/data/critical.db"prefix = "critical"snapshot_interval = 300 # every 5 minutes
[[databases]]path = "/data/logs.db"prefix = "logs"snapshot_interval = 3600 # every hour is fineDynamic Database Discovery
Section titled “Dynamic Database Discovery”With glob patterns, walrust picks up new databases automatically:
[[databases]]path = "/data/tenants/*.db"prefix = "tenants"New database files matching the pattern are detected and backed up. A restart is required for walrust to discover new files.