IKAREM-BACKUP
Backups that prove they restore.
pip install ikarem-backup — online dumps of live SQLite
files, a restore drill on every run, retention pruning, and an upload
hook for S3 or anywhere. Stdlib only. Part of
IKAREM extensions.
BackupManager("sqlite:///app.db", "backups/", keep=7).run()
# {"backup": "backups/app-....db.gz", "tables": [...], "pruned": [...]}
01 — DRILL
An untested backup is a rumor.
Every run opens the fresh backup read-only in a temp directory and
runs integrity_check plus a table census — without touching
production. Corrupt output raises with the fix instead of sitting on
disk pretending to protect you. Non-SQLite engines get the native-dump
remedy (pg_dump, mysqldump), not a traceback.
02 — NIGHTLY
One route, one cron line.
BackupPlugin exposes POST /admin/backup
(guard it like any mutating route); a cron
@app.every(86400) calling manager.run() makes
it nightly. Upload stays a callable so boto3 never becomes our
dependency.
FAQ
Straight answers.
Live SQLite backup? Online-backup API via one call — never file-copy a live database.
Prove it restores? Drill runs every cycle, temp dir, read-only.
S3? Uploader hook; boto3 stays yours.
KEEP GOING
Backed up? Now attack it.
ikarem-pentest probes the app the backups protect; ikarem-oauth guards its logins. Back to the extensions hub.