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. This is because newer Postgres versions cannot start with data generated by an older Postgres version. An upgrade must be performed.
This playbook can upgrade your existing Postgres setup with the following command:
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
).
It 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.
To use a different directory, pass some extra flags to the command above, like this: --extra-vars="postgres_dump_dir=/directory/to/dump/here"
ONLY one database is migrated (the one specified in matrix_postgres_db_name
, named homeserver
by default).
If you've created other databases in that database instance (something this playbook never does and never advises), data will be lost.