LaunchSchool - An Online School for Developers /

Blog

How to Install PostgreSQL for Mac OS X

Introduction

Postgres is a powerful and free object-relational database management system. It has gained a lot of momentum since its introduction in 1995 because of its robustness and powerful features it ships with out of the box. In this article, we’ll walk through the process of installing a Postgres database on a Mac OS X machine and set it up for Ruby on Rails development.

Install Postgres Database with Homebrew

Homebrew is a popular package manager for OS X. To install Postgres with Homebrew, follow the steps below:

The first thing to do is install Homebrew if you haven’t done so already. Homebrew site has a simple command that you have to paste in your terminal to do so. Make sure to accept the command line developer tools installation if prompted.

Next, run brew install postgres to install Postgres. It might take a little while to compile and install. After compilation is done, it’ll give you some instructions to finish setting it up.

The database will be initialized during installation, so there isn’t a need to run initdb to finish installation of Postgres via Homebrew. Near the end of the installation instructions you should see mention of the command brew services.

If you don’t already have brew services installed. It may be installed with this command:

1
brew tap homebrew/services

And then you can run the following command to start Postgres as a background service:

1
brew services start postgresql

Postgres will also restart automatically at login after you have run the command above.
Once Postgres has started, we can use brew services to stop it manually:

1
2
3
brew services stop postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)

Or we can also use brew services to restart Postgres:

1
2
3
4
brew services restart postgresql
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

Now you should have PostgreSQL all set up.

Set Up Postgres to Work with a Rails App

First, install the pg gem:

1
gem install pg -- --with-pg-config=/usr/local/bin/pg_config

Make sure you include the pg gem in your Gemfile, and run

1
bundle install

Now, set up your config/database.yml file to point to your Posgres database.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
development:
  adapter: postgresql
  encoding: unicode
  database: myapp_dev
  pool: 5
  username: your_username_on_mac
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: myapp_test
  pool: 5
  username: your_username_on_mac
  password:

Let’s create the development and test databases:

1
rake db:create:all

Now you can run pending migrations, if there are any.

1
rake db:migrate