In BlogPost, SQL

How To Install Postgresql On Mac

I started off programming Ruby on Rails applications on a Windows machine with an Ubuntu virtual machine running on top. But when I got my first job at a startup in California, I received a brand new shiny Macbook laptop.

postgresql 3 color logo

I had never used a Mac before as I considered them overpriced relative to a desktop I could setup with Linux. But since that’s what I was given, that’s what I was used. One of the first things I had to do is figure out how to get Postgres up and running.

Eventually, I had to learn a good way to upgrade it as well. At my first job, I found that using Heroku’s Postgres app. At my next job, I used the homebrew package manager since that’s how our team used it.

So what follows is a mini-guide I put together on how to install postgresql on Mac as well as how to upgrade it with homebrew.

Now if you want to use Heroku’s Postgres app, it’s pretty easy and is a good alternative to homebrew.

Installing Postgres via Homebrew

This guide assumes that you have homebrew installed. If you don’t, you can find some instructions here.

Once you do that, all you have to do is issue the following command in your terminal:

It should install the latest version of Postgres available via Homebrew. Pretty easy, right?

Upgrading Postgres via Homebrew

Ok, so let’s say you have to upgrade postgres. I had to follow these steps when I was upgrading to Postgres 9.6

Step 1 – Turn off Postgres

The first step is to turn off the postgres service if it’s running in the background.

Step 2 – Upgrade

Next, we’ll use homebrew to upgrade it to the latest version.

Step 3 – Switch

Finally, we’ll switch to the new version using the following command.

You’ll see output like the following:

Step 4 – Ensuring Postgresql Starts Automatically At Startup (optional, but makes your life easier)

Now to ensure postgres starts automatically every time you start your Mac, you’ll need to do some extra setup.

I got the following setup from this blog post at tunnelsup.

Step A – You’ll need to setup LaunchAgents

Create the directory ~/Library/LaunchAgents if it doesn’t exist already.

Step B – Copy the plist file to ~/Library/LaunchAgents/

There’s a plist file that comes with the postgres install from homebrew.

When upgrading to 9.6.2, my plist was at /usr/local/Cellar/postgresql/9.6.2/homebrew.mxcl.postgresql.plist.

Copy the plist file to the LaunchAgents directory.

Step C – Load launchctl

Now use launchctl to load the file using this command:

You can also use a ruby gem called lunchy. I haven’t tried it but this blog post describes the process.

General Troubleshooting Tips And Useful Commands

The following command will show you if you have multiple versions of postgres installed.

This troubleshooting gist describes how to migrate data from one version of Postgres to another.

Troubleshooting Guide for Rails developers

This part gives you some common troubleshooting tips if you’re a Rails developer.

Since I primarily use Postgres for Ruby on Rails work, when I was upgrading I had a connection issue described below.

If you get a connection issue with a message such as the following:

Then try running this in your terminal:

$ postgres -D /usr/local/var/postgres

If you see the above “FATAL…”, then issue the following commands:

WARNING: Before you issue the following commands, please make sure you back up your old local Postgres data if you need it. See the gist referenced in the General Troubleshooting Tips And Useful Commands section.

After running the above rm and initdb commands, you should see something similar to the following.

Summary

If you want to install Postgres via homebrew, follow the steps above. Make sure you backup your local data if you need it so you don’t accidentally erase something you need to keep. Other than that, let me know if you have any issues in the comments.

Recent Posts