Add support for configuring Postgres auto-upgrade-backup path

This commit is contained in:
Slavi Pantaleev 2018-11-01 09:45:48 +02:00
parent ac8d5a839d
commit 009bb1b776
2 changed files with 6 additions and 3 deletions

View file

@ -3,15 +3,17 @@
If you're not using an external Postgres server, this playbook initially installs Postgres for you. If you're not using an external Postgres server, this playbook initially installs Postgres for you.
Once installed like that, this playbook attempts to preserve the Postgres version it starts with. Once installed like that, this playbook attempts to preserve the Postgres version it starts with.
This is because newer Postgres versions cannot start with data generated by an older Postgres version. This is because newer Postgres versions cannot start with data generated by older Postgres versions.
An upgrade must be performed. An upgrade must be performed.
This playbook can upgrade your existing Postgres setup with the following command: This playbook can upgrade your existing Postgres setup with the following command:
ansible-playbook -i inventory/hosts setup.yml --tags=upgrade-postgres ansible-playbook -i inventory/hosts setup.yml --tags=upgrade-postgres
**The old Postgres data directory is backed up** (by renaming to `/matrix/postgres-auto-upgrade-backup`). **The old Postgres data directory is backed up** by renaming to `/matrix/postgres-auto-upgrade-backup`, by default.
It stays around forever, until you **manually decide to delete it**. To rename to a different path, pass some extra flags to the command above, like this: `--extra-vars="postgres_auto_upgrade_backup_data_path=/another/disk/matrix-postgres-before-upgrade"`
The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**.
As part of the upgrade, the database is dumped to `/tmp`, upgraded and then restored from that dump. As part of the upgrade, the database is dumped to `/tmp`, upgraded and then restored from that dump.
To use a different directory, pass some extra flags to the command above, like this: `--extra-vars="postgres_dump_dir=/directory/to/dump/here"` To use a different directory, pass some extra flags to the command above, like this: `--extra-vars="postgres_dump_dir=/directory/to/dump/here"`

View file

@ -12,6 +12,7 @@
- set_fact: - set_fact:
postgres_auto_upgrade_backup_data_path: "{{ matrix_postgres_data_path }}-auto-upgrade-backup" postgres_auto_upgrade_backup_data_path: "{{ matrix_postgres_data_path }}-auto-upgrade-backup"
when: "postgres_auto_upgrade_backup_data_path|default('') == ''"
- name: Fail, if trying to upgrade external Postgres database - name: Fail, if trying to upgrade external Postgres database
fail: fail: