Skip to main content

Database Backup and Restore

zCICD lets you back up and restore instance databases from the interface, with no manual pg_dump or pg_restore commands. Backups are tied to a specific branch, which makes it easy to test something destructive, then roll straight back.

Restoring requires the Key User role or above. See User Roles.

Creating a backup

Open the branch and use the Actions area:

  • Backup — dumps the database together with the filestore
  • Backup w/o Filestore — dumps the database only

The Backup actions on a branch

Leaving out the filestore is much faster and produces a far smaller file. Use it when you only care about data and not about attachments or images.

The backup runs as a background task. Watch the Tasks tab; the entry turns green when the dump is complete.

Automatic backups

Autobackup on the branch toggles scheduled backups for that instance, so each deployment has a recoverable point without anyone remembering to press a button.

Restoring a dump

  1. Open the branch you want to restore into.
  2. In the Actions area, choose Restore.
  3. Pick the dump from the list and confirm.

Restore Dump on the branch

Selecting which dump to restore

A queue job is created and the restore runs in the background. How long it takes scales with the size of the dump. The restore appears in the branch's Tasks tab and turns green when it finishes.

note

If the list of dumps is empty, no dump exists yet. Create one from another branch first — see above — or check the top-level Dumps menu, which shows every dump in the system.

After restoring production data

A dump taken from a production system still contains that system's mail servers and active scheduled actions. Before working on the instance, run Turn into DEV from the Actions area. It deactivates every ir.cron record and repoints the mail servers at the local test mail host.

Skipping this step means the instance can send mail to real customers.

Some behaviour is configured per repository rather than per branch, under Configuration > Repositories:

SettingEffect
Remove WebassetsRemoves generated web assets after a restore, so they regenerate cleanly. Default: on
New Instance ModeWhether new branches get a restored dump or an empty demo database
Dump for new instanceWhich dump new instances are seeded from
Make Dev DumpsWhether development dumps are produced

Snapshots are not backups

Snapshot and Restore Snapshot (Developer role) work at the filesystem level and are much faster than a dump, but they are tied to the machine the instance runs on. Use snapshots for quick throwaway checkpoints during a working session, and dumps for anything you need to keep or move between instances.

Smaller dumps for development

Production databases are often too large to work with comfortably. A Compressor is a scheduled job that takes a large dump, shrinks and anonymises it, and distributes the result — giving developers a realistic but small and privacy-safe database. Compressors have their own top-level menu.