DBCatz moves data in and out in three ways: Export… for tables, Import… for files, and Backup as .tar.gz… for whole databases. All three run as background jobs, so the window stays usable meanwhile.
Export
Open it with File → Export… (mod+E), Export at the foot of the sidebar, Export Table… in a table’s menu, or Export N Tables… for a selection. The dialog is Export from <db>.
Export formats per engine
| Format | What you get | Engines |
|---|---|---|
| SQL | CREATE + INSERT statements |
MySQL, MariaDB, PostgreSQL, SQLite |
| CSV | One header row, then the rows | All |
| JSON | NDJSON — one object per line, in a .ndjson file. Several tables add a _table field to each line. |
All |
| XML | <database><table><row>… |
All |
| DOT | A Graphviz diagram of the tables and their foreign keys | SQL engines |
| Redis script | SET / RPUSH … lines for redis-cli |
Redis, Valkey |
There is no plain JSON-array export; JSON is always NDJSON.
What to export
- The table list has All, Each and a filter. With nothing ticked, every table is exported.
- Redis / Valkey: Keys matching — a pattern for the keys to export.
- SQL options: Structure (CREATE), Data (INSERT) and DROP IF EXISTS first.
Press Save as…. The file is suggested in Downloads as <db>.<ext> or <db>-<table>.<ext>.
Elasticsearch exports scroll through every document, 500 at a time.
Import
File → Import… (mod+I) or Import at the foot of the sidebar opens Import into <db>. Pick What to import:
| Choice | Files | Engines |
|---|---|---|
| SQL file or backup | .sql, .sql.gz, and DBCatz or DevCatz .tar.gz backups |
SQL engines |
| CSV into a table | .csv |
SQL engines, MongoDB, Elasticsearch |
| JSON / NDJSON | .json, .ndjson |
MongoDB, Elasticsearch |
| Redis script or backup | A Redis script or a .tar.gz backup |
Redis, Valkey |
Press Choose file…. When the import is done, the connection’s tables are refreshed.
How each import runs
- SQL runs statement by statement and stops at the first error.
- A backup restores each database it holds, creating the ones that are missing.
- CSV — tick First row has column names if it has a header. Rows are inserted one by one; empty cells become
NULLwhere the column allows it. The target is an existing table for SQL engines; for MongoDB and Elasticsearch the collection or index is made when missing.
Backup as .tar.gz
File → Backup as .tar.gz… (mod+shift+B) backs up several databases into one file.
- Tick the databases to include. System databases are unticked by default. All / None, and a search box when there are more than 8.
- Each database becomes one file inside the archive — a
.sqldump, a.redisscript or an.ndjsonfile — plus a manifest, all gzipped. - The default name is
<connection>-<YYYY-MM-DD-HH-MM>.tar.gz, in Downloads.
To restore, open Import… and choose the .tar.gz (SQL file or backup, or Redis script or backup).
Backups made by DevCatz import the same way.
The Jobs panel
Export, import and backup dialogs close as soon as you have chosen the file. The work goes on in the Jobs panel — the Jobs button top right of the window, with a count badge and a dot while a job runs. A toast tells you when a job ends.
Each job shows its progress, with:
- Reveal — show the file in FinderFile Explorer;
- Cancel — an export or backup removes the half-written file; an import keeps the rows already written;
- ✕ — remove the job from the list.
Clear finished removes all finished jobs. Removing a job never touches its file — exports and backups stay where you saved them.
If you restart DBCatz to install an update while jobs are running, it lists them first and asks before going on.
Last updated 2026-11-01