Skip to content

Instantly share code, notes, and snippets.

@hoanghiep90
Last active August 29, 2015 14:20
Show Gist options
  • Save hoanghiep90/34231660cc86790925c9 to your computer and use it in GitHub Desktop.
Save hoanghiep90/34231660cc86790925c9 to your computer and use it in GitHub Desktop.
Upgrade Postgres 9.3 to 9.4 on Ubuntu
# Be sure to save your config files. Optional but I do:
sudo cp /etc/postgresql/9.3/main/postgresql.conf ~
sudo cp /etc/postgresql/9.3/main/pg_hba.conf ~
# Also probably optional but I like to update sources and upgrade
sudo apt-get update
sudo apt-get upgrade
# Install postgres 9.4
sudo apt-get update
sudo apt-get install postgresql-9.4 postgresql-server-dev-9.4 postgresql-contrib-9.4
# dump your data
sudo su postgres
/usr/lib/postgresql/9.4/bin/pg_dumpall > ~/pre_upgrade_from_9.3_to_9.4.dump
# Make a data dir for Postgres 9.4 (on your EBS if this is EC2)
sudo mkdir -p /data/postgres/9.4/main
sudo chown -R postgres:postgres /data/postgres
# Change the 9.4 conf file's data dir to point to /data/postgres/9.4/main
# sudo nano /etc/postgresql/9.4/main/postgresql.conf
# Install 9.4 cluster
sudo /etc/init.d/postgresql stop
sudo pg_dropcluster 9.4 main
sudo pg_createcluster 9.4 main
# sudo pg_createcluster -d /data/postgres/9.4/main 9.4 main
# start 9.4 explicitly
sudo /etc/init.d/postgresql start 9.4
# Restore: Make sure to use the 9.4 version of psql
sudo su postgres
psql -d postgres -p 5433 -f ~/pre_upgrade_from_9.3_to_9.4.dump
# Or nohup version:
sudo -u postgres nohup psql -d postgres -p 5433 -f /mnt/dumps/pre_upgrade_from_9.3_to_9.4.dump > upgrade-restore-nohup.out 2>&1 &
# Change port (optional)
sudo service postgresql stop 9.4
sudo nano /etc/postgresql/9.4/main/postgresql.conf
# change to 5432
# Change the postgres conf and hba conf back to what it was! (reference previously copied files)
sudo nano /etc/postgresql/9.4/main/postgresql.conf
sudo nano /etc/postgresql/9.4/main/pg_hba.conf
sudo service postgresql restart 9.4
# Verify your data was properly imported
# Drop old cluster
sudo pg_dropcluster --stop 9.3 main
# Analyze
sudo service postgresql start
psql
>\c your_database
> ANALYZE;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment