pulibrary / dpul

Princeton's digital collections: Digital PUL
https://dpul.princeton.edu/
Apache License 2.0
15 stars 0 forks source link

Upgrade Postgres to 15 #1478

Closed tpendragon closed 9 months ago

tpendragon commented 9 months ago

See https://github.com/pulibrary/princeton_ansible/pull/4274 for an example of how to create a PR and a run book.

Staging:

  1. Turn off DPUL: ansible dpul_staging -a "sudo service nginx stop && sudo service sidekiq-workers stop" -u pulsys
  2. Dump Database from old server to new server: ansible lib-postgres-staging1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/dpul/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/dpul_staging.dump" -u pulsys
  3. Provision database (on dpul_postgres_15 ansible branch): ansible-playbook playbooks/dpul.yml --tags postgresql
  4. Restore database: ansible lib-postgres-staging1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/dpul/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/dpul_staging.dump" -u pulsys
  5. Run this branch: https://github.com/pulibrary/princeton_ansible/pull/4274 (ansible-playbook playbooks/dpul.yml --tags site_config)

Production:

  1. Turn off DPUL: ansible dpul_production -a "sudo service nginx stop && sudo service sidekiq-workers stop" -u pulsys
  2. Dump Database from old server to new server: ansible lib-postgres-prod1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/dpul/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/dpul_prod.dump" -u pulsys
  3. Provision database (on dpul_postgres_15 ansible branch): ansible-playbook playbooks/dpul.yml --tags postgresql -e runtime_env=production
  4. Restore database: ansible lib-postgres-prod1.princeton.edu -e @group_vars/all/vault.yml -e @group_vars/dpul/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/dpul_prod.dump" -u pulsys
  5. Run this branch: https://github.com/pulibrary/princeton_ansible/pull/4274 (ansible-playbook playbooks/dpul.yml --tags site_config -e runtime_env=production)