Skip to main content

Supermarket Backup and Restore

Periodic backups of Supermarket data are an essential part of managing and maintaining a healthy configuration, and to help ensure that important data can be restored if required. In a typical installation of Supermarket, both the cookbook store and the database need to be backed up on a regular basis.

Backup

Cookbook Backup

If Supermarket is not configured to use AWS S3 storage for cookbooks, then the local cookbook storage location on the Supermarket server will need to be backed up.

The default location is: /var/opt/supermarket/data/cookbook_versions.

For example, a cookbook backup command:

cd /var/opt/supermarket/data/
tar cvzf ~/supermarket_cookbook_versions.tar.gz cookbook_versions

Database Backup

A database export can be made in several formats.

For example, a database export in a .dump format can be made with the following syntax:

/opt/supermarket/embedded/bin/pg_dump --host localhost --username supermarket --dbname supermarket --port 15432 --format c --blobs --verbose --file ~/supermarket_database_backup.dump
where, in a typical installation:
  • /opt/supermarket/embedded/bin/pg_dump is the path to the database export utility included in the Supermarket installation
  • localhost may alternatively be 127.0.0.1
  • 15432 is the PostgreSQL port number, which may need to be modified
  • --format c sets the output to PostgreSQL’s “custom” binary file format

Be sure to update the various local values in the pg_dump command as necessary to match your infrastructure. For documentation about the pg_dump utility, see the pgdump documentation.

To find local variables, look at /etc/supermarket/supermarket-running.json. This file lives next to supermarket.rb and supermarket.json where their configuration is set. supermarket-running.json contains the final values the system is operating with after running sudo supermarket-ctl reconfigure.

There’s a “database” key in supermarket-running.json:

{ "supermarket": {
     ...
     "database": {
          "user": "supermarket",
          "name": "supermarket",
          "host": "127.0.0.1",
          "port": "15432",
          "pool": "30",
          "extensions": {
               "plpgsql": true,
               "pg_trgm": true
          },
          "password": "sup3rs3cr3t"
     },
     ...
}

Restore

Cookbook Restore

When restoring cookbooks, make sure the cookbook directory is writable by the Supermarket user.

For example, to restore your cookbook files, run:

cd /var/opt/supermarket/data/
tar xvzf /supermarket_cookbook_versions.tar.gz

Database Restore

Note

The restore does not support transferring backups across different versions of Supermarket. Backups taken must be restored to the same version of Supermarket that was in use when they were created.

For example, to restore a backup in a .dump format, run:

/opt/supermarket/embedded/bin/pg_restore --username supermarket --host localhost --port 15432 --clean --no-acl --no-owner --dbname supermarket --verbose ~/supermarket_database_backup.dump
Edit this page on GitHub

Thank you for your feedback!

×