diff --git a/docs/how-to/backup-your-databases.md b/docs/how-to/backup-your-databases.md index f1f00878..25a664e4 100644 --- a/docs/how-to/backup-your-databases.md +++ b/docs/how-to/backup-your-databases.md @@ -338,6 +338,28 @@ within the database dump: borgmatic restore --archive latest --database users --schema tentant1 ``` +### Restore to an alternate host +New in version 1.7.15 +A database dump can be restored to a host other than the one from which it was +originally dumped. The connection parameters like the username, password, and +port can also be changed. This can be done from the command line: + +```bash +borgmatic restore --archive latest --database users --hostname database2.example.org --port 5433 --username postgres --password trustsome1 +``` + +Or from the configuration file: + +```yaml +postgresql_databases: + - name: users + hostname: database1.example.org + restore_hostname: database1.example.org + restore_port: 5433 + restore_username: postgres + restore_password: trustsome1 +``` + ### Limitations diff --git a/docs/how-to/extract-a-backup.md b/docs/how-to/extract-a-backup.md index 5a4aa6fa..2622c763 100644 --- a/docs/how-to/extract-a-backup.md +++ b/docs/how-to/extract-a-backup.md @@ -44,7 +44,6 @@ entire contents of the archive to the current directory, so make sure you're in the right place before running the command—or see below about the `--destination` flag. - ## Repository selection If you have a single repository in your borgmatic configuration file(s), no @@ -145,3 +144,29 @@ When you're all done exploring your files, unmount your mount point. No ```bash borgmatic umount --mount-point /mnt ``` + +## Extract the configuration files used to create an archive + +New in version 1.7.15 borgmatic +automatically stores all the configuration files used to create an archive inside the +archive itself. This is useful in cases where you've lost a configuration +file or you want to see what configurations were used to create a particular +archive. + +To extract the configuration files from an archive, use the `config bootstrap` action. For example: + +```bash +borgmatic config bootstrap --repository repo.borg --destination /tmp +``` + +This extracts the configuration file from the latest archive in the repository `repo.borg` to `/tmp/etc/borgmatic/config.yaml`, assuming that the only configuration file used to create this archive was located at `/etc/borgmatic/config.yaml` when the archive was created. + +Note that to run the `config bootstrap` action, you don't need to have a borgmatic configuration file. You only need to specify the repository to use via the `--repository` flag; borgmatic will figure out the rest. + +If a destination directory is not specified, the configuration files will be extracted to their original locations, silently **overwriting** any configuration files that may already exist. For example, if a configuration file was located at `/etc/borgmatic/config.yaml` when the archive was created, it will be extracted to `/etc/borgmatic/config.yaml` too. + +If you want to extract the configuration file from a specific archive, use the `--archive` flag: + +```bash +borgmatic config bootstrap --repository repo.borg --archive host-2023-01-02T04:06:07.080910 --destination /tmp +```