Repository navigation
v1.2.0 — whole-server backups, discover, preflight
Back up every database on a server, and prove it will work before you trust the schedule.
all_databases: true turns an entry into a whole server. dbtool asks pg_database (or SHOW DATABASES) on every run, so a database created later is backed up without a config change. include_databases / exclude_databases take globs. Each database becomes its own dump labelled <entry>_<db>, so retention, restore and verification stay per-database.
discover [name|all] [--url DSN] lists what a server actually holds, with sizes, marks everything the config does not cover, and prints an entry to paste. Works against a URL that is not in the config.
test --deep checks what decides whether a schedule works: maintenance-database access (enumeration, --create, --drop), whether the role is superuser and may create databases, how many databases it may CONNECT to, whether the local client can dump this server version or needs a container — then runs a real --schema-only dump of each database. Non-zero exit, so it can gate cron.
Updating in one command: sudo ./install.sh (never overwrites an existing dbtool.yml / dbtool.env), or sudo dbtool self-update on a box without a checkout. self-update --check exits 10 when an update is due.
Also: maintenance_db setting, and a whole-server entry is no longer a lookup group — prune takes its groups from each sidecar's label, and --latest <server-entry> refuses with the usable labels.