I recently upgraded Postgres on my development machine from 9.1.4 to 9.2.1. Things didn’t go smoothly, however, because I forgot to migrate all my data. Since I seem to forget how to do this every time I upgrade between minor versions of Postgres (and I’m sure other developers do as well), I’m documenting the process and sharing my solution to reference later.
Note: these steps assume installation with Homebrew.
Initialize a new database, adding a
.newsuffix to the directory that Homebrew recommends.
initdb /usr/local/var/postgres.new -E utf8
Run the upgrade script, providing the correct paths for the various flags.
pg_upgrade \ -b /usr/local/Cellar/postgresql/9.1.4/bin \ -B /usr/local/Cellar/postgresql/9.2.1/bin \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres.new
Put the data in the correct place.
rm -rf /usr/local/var/postgres mv /usr/local/var/postgres.new /usr/local/var/postgres
If you’ve set up
launchd to run Postgres automatically, everything should be
up and running! Otherwise, check out the documentation with
postgres to read how to have OS X manage postgres for you.