← Files Codex SecurityARCHIVED FILE
scripts/snapshot_sqlite.py
852 Bytes · Oct 2, 2026 · 00:04 UTC
#!/usr/bin/env python3
"""Create a transactionally consistent SQLite database snapshot."""
from __future__ import annotations
import argparse
import sqlite3
from pathlib import Path
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("source", type=Path)
parser.add_argument("destination", type=Path)
args = parser.parse_args()
source = args.source.expanduser().resolve(strict=True)
destination = args.destination.expanduser().absolute()
destination.parent.mkdir(parents=True, exist_ok=True)
with sqlite3.connect(f"{source.as_uri()}?mode=ro", uri=True) as source_connection:
with sqlite3.connect(destination) as destination_connection:
source_connection.backup(destination_connection)
destination.chmod(0o600)
if __name__ == "__main__":
main()
SHA-256: a501b0f4b6656f4f9b6a389835e73f0d8105051191646b64af4268f0d4a3eaee