pulibrary / pulmap

Princeton University Library Geoblacklight application.
Apache License 2.0
8 stars 2 forks source link

Upgrade to Postgres 15 #1164

Closed tpendragon closed 12 months ago

tpendragon commented 1 year ago

See https://github.com/pulibrary/princeton_ansible/pull/4274 for an example of how to create a PR & runbook (linked)

Staging:

Turn off Pulmap: ansible pulmap_staging -a "sudo service nginx stop && sudo service sidekiq-workers stop && sudo service pulmap-sneakers stop" -u pulsys Dump Database from old server to new server: ansible lib-postgres-staging1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/pulmap/staging.yml -m shell -a "export PGPASSWORD=\"{{vault_postgres_staging_admin_password}}\"; pg_dump -h lib-postgres-staging3 --format custom --clean {{application_db_name}} -U postgres > /tmp/pulmap_staging.dump" -u pulsys Provision database (on pulmap_pg15 ansible branch): ansible-playbook playbooks/pulmap.yml --tags postgresql Restore database: ansible lib-postgres-staging1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/pulmap/staging.yml -m shell -a "export PGPASSWORD=\"{{vault_postgres_staging_admin_password}}\"; pg_restore -h 127.0.0.1 -U postgres --dbname {{ application_db_name }} /tmp/pulmap_staging.dump" -u pulsys Run this branch: [Pulfalight] Update to Postgres 15 princeton_ansible#4274 (ansible-playbook playbooks/pulmap.yml --tags site_config)

Production:

Turn off Pulmap: ansible pulmap_production -a "sudo service nginx stop && sudo service sidekiq-workers stop && sudo service pulmap-sneakers stop" -u pulsys Dump Database from old server to new server: ansible lib-postgres-prod1.princeton.edu -e @group_vars/pulmap/vault.yml -e @group_vars/all/vault.yml -e @group_vars/pulmap/production.yml -m shell -a "export PGPASSWORD=\"{{vault_postgres_admin_password}}\"; pg_dump -h lib-postgres-prod3 --format custom --clean {{application_db_name}} -U postgres > /tmp/pulmap_prod.dump" -u pulsys Provision database (on pulmap_pg15 ansible branch): ansible-playbook playbooks/pulmap.yml --tags postgresql -e runtime_env=production Restore database: ansible lib-postgres-prod1.princeton.edu -e @group_vars/pulmap/vault.yml -e @group_vars/all/vault.yml -e @group_vars/pulmap/production.yml -m shell -a "export PGPASSWORD=\"{{vault_postgres_admin_password}}\"; pg_restore -h 127.0.0.1 -U postgres --dbname {{ application_db_name }} /tmp/pulmap_prod.dump" -u pulsys Run this branch: [Pulfalight] Update to Postgres 15 princeton_ansible#4274 (ansible-playbook playbooks/pulmap.yml --tags site_config -e runtime_env=production)

tpendragon commented 12 months ago

Done!