Assuming you’ve used home-brew to install and upgrade Postgres, you can perform the following steps.
-
Stop current Postgres server:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist -
Initialize a new 10.1 database:
initdb /usr/local/var/postgres10.1 -E utf8 -
run
pg_upgrade(note: change bin version if you’re upgrading from something other than below):pg_upgrade -v \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres10.1 \ -b /usr/local/Cellar/postgresql/9.6.5/bin/ \ -B /usr/local/Cellar/postgresql/10.1/bin/-vto enable verbose internal logging-dthe old database cluster configuration directory-Dthe new database cluster configuration directory-bthe old PostgreSQL executable directory-Bthe new PostgreSQL executable directory -
Move new data into place:
cd /usr/local/var mv postgres postgres9.6 mv postgres10.1 postgres -
Restart Postgres:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist -
Check
/usr/local/var/postgres/server.logfor details and to make sure the new server started properly. -
Finally, re-install the rails
pggemgem uninstall pg gem install pg
I suggest you take some time to read the PostgreSQL documentation to understand exactly what you’re doing in the above steps to minimize frustrations.