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
brew info postgres
to read how to have OS X manage postgres for you.