{"slug": "sqlite3-rsync", "name": "sqlite3_rsync", "category": "databases", "category_name": "Databases", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.719, "rising": -0.98, "first": "2026-04-07", "latest": "2026-07-17", "why": "there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database", "kind": "", "icon": true, "domain": "sqlite.org", "github_repo": null, "official_url": "https://www.sqlite.org/rsync.html", "pricing": "", "aliases": ["sqlite3_rsync"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 783270768, "item_id": 48954423, "url": "https://news.ycombinator.com/item?id=48954423", "by": "rsync", "date": "2026-07-17", "version": null, "stance": "recommend", "quote": "sqlite3_rsync exists:", "excerpt": "sqlite3_rsync exists: https://sqlite.org/rsync.html ... and is installed and available: # sqlite3_rsync -vv ./test.db user@rsync.net:test.db \"Ordinary rsync does not understand SQLite transactions. Rsync will make a copy of ORIGIN into REPLICA, however the copy might not be consistent. Parts of the copy might be from one transaction, while other parts might be from a different transaction. The database copy might be ", "context": "", "use_case": "Consistent SQLite database copies", "switched_from": "", "story": "Lobste.rs is now running on SQLite"}, {"id": 773235953, "item_id": 48327247, "url": "https://news.ycombinator.com/item?id=48327247", "by": "gwking", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "solution using sqlite3_rsync and nightly backups", "excerpt": "The suitability of Litestream for production disaster recovery is also an open question in my mind. I used 0.3.x for several years and when I tried to upgrade to the 0.5.x series there were runaway disk usage problems that would have caused downtime had they made it to prod. As far as I can tell these have not been entirely addressed, although recent bug reports suggest that they might be getting closer. I want to lo", "context": "", "use_case": "", "switched_from": "", "story": "SQLite is all you need for durable workflows"}, {"id": 762850512, "item_id": 47678157, "url": "https://news.ycombinator.com/item?id=47678157", "by": "rogerbinns", "date": "2026-04-07", "version": null, "stance": "recommend", "quote": "there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database", "excerpt": "Related, there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database, where either can be on the network, accessed via ssh. A snapshot of the origin is used so writes can continue happening while the sqlite3_rsync is running. Only the differences are copied. The documentation is thorough: https://sqlite.org/rsync.html", "context": "", "use_case": "Copying live SQLite databases", "switched_from": "", "story": "SQLite in Production: Lessons from Running a Store on a Single File"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["consistent sqlite database copies", "copying live sqlite databases"], "compared": [], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48899847", "title": "Lobste.rs is now running on SQLite", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48326802", "title": "SQLite is all you need for durable workflows", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47637353", "title": "SQLite in Production: Lessons from Running a Store on a Single File", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 1}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 783270768, "item_id": 48954423, "url": "https://news.ycombinator.com/item?id=48954423", "by": "rsync", "date": "2026-07-17", "version": null, "stance": "recommend", "quote": "sqlite3_rsync exists:", "excerpt": "sqlite3_rsync exists: https://sqlite.org/rsync.html ... and is installed and available: # sqlite3_rsync -vv ./test.db user@rsync.net:test.db \"Ordinary rsync does not understand SQLite transactions. Rsync will make a copy of ORIGIN into REPLICA, however the copy might not be consistent. Parts of the copy might be from one transaction, while other parts might be from a different transaction. The database copy might be ", "context": "", "use_case": "Consistent SQLite database copies", "switched_from": "", "story": "Lobste.rs is now running on SQLite"}, {"id": 773235953, "item_id": 48327247, "url": "https://news.ycombinator.com/item?id=48327247", "by": "gwking", "date": "2026-05-29", "version": null, "stance": "recommend", "quote": "solution using sqlite3_rsync and nightly backups", "excerpt": "The suitability of Litestream for production disaster recovery is also an open question in my mind. I used 0.3.x for several years and when I tried to upgrade to the 0.5.x series there were runaway disk usage problems that would have caused downtime had they made it to prod. As far as I can tell these have not been entirely addressed, although recent bug reports suggest that they might be getting closer. I want to lo", "context": "", "use_case": "", "switched_from": "", "story": "SQLite is all you need for durable workflows"}, {"id": 762850512, "item_id": 47678157, "url": "https://news.ycombinator.com/item?id=47678157", "by": "rogerbinns", "date": "2026-04-07", "version": null, "stance": "recommend", "quote": "there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database", "excerpt": "Related, there is also sqlite3_rsync that lets you copy a live database to another (optionally) live database, where either can be on the network, accessed via ssh. A snapshot of the origin is used so writes can continue happening while the sqlite3_rsync is running. Only the differences are copied. The documentation is thorough: https://sqlite.org/rsync.html", "context": "", "use_case": "Copying live SQLite databases", "switched_from": "", "story": "SQLite in Production: Lessons from Running a Store on a Single File"}]}