You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
README: backup section — every database needs its own backup, plus WAL and restore caveats
The What to Backup list named all six SQLite files, but nothing said
backup tools operate per-file — a single Litestream dbs: entry only
replicates one database. Add an explicit warning, a four-DB Litestream
example, a no-plain-cp-of-live-WAL-databases note, and a Restoring
subsection (align restore points across DBs; dicts are stored in-file
so each backup is self-contained). Also fix the sqlite3_rsync link to
the official SQLite utility page.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Splat uses SQLite databases. Two recommended backup strategies:
585
+
Splat splits its data across **six separate SQLite database files**, and backup tools operate per-file — backing up `production.sqlite3` alone captures only projects and settings, not your errors, transactions, or logs. Every database you care about needs its own backup configuration.
586
+
587
+
Two recommended backup strategies:
586
588
587
589
**[Litestream](https://litestream.io/)** - Continuous replication to S3-compatible storage
Do **not** back up a live database with plain `cp` or `rsync` — the databases run in WAL mode, and copying the `.sqlite3` file without a consistent snapshot of its `-wal` file produces a corrupt or stale copy. Use one of the tools above, or `sqlite3 <db> ".backup <dest>"`.
Restore all critical databases from (roughly) the same point in time. The issues/events, transactions/spans, and logs databases reference project IDs in the primary database, so wildly mismatched restore points leave rows pointing at projects that don't exist yet. There's no cross-file transaction to preserve, so second-level alignment is fine — just don't mix a week-old primary with today's events.
629
+
630
+
Each backup is self-contained: the zstd compression dictionaries used for event and log payloads are stored inside the same database file as the rows they compress, so a restored file is always readable on its own.
631
+
605
632
## Model Context Protocol (MCP) Integration
606
633
607
634
Splat exposes an MCP server that allows Claude and other AI assistants to query error tracking and performance data directly. As Splat has no authentication system, we'll use an environment set value for an authentication token.
0 commit comments