Install and setup PostgreSQL for Ruby on Rails on Mac OS
A brief note on how to install and setup PostgreSQL for Ruby on Rails on Mac OS.
- Prerequisites
- Install PostgreSQL
- Install pgAdmin
- Install pg gem
- Update Ruby on Rails project
- Create DB using PostgreSQL
- Further Reading
Prerequisites
This note assumes that Ruby on Rails has already been properly installed and the purpose is to replace the default DB engine SQLite with PostgreSQL.
Install PostgreSQL
As shown in the official Postgres download instructions here, there are few ways of installing PostgreSQL on Mac OS. Homebrew or Postgres.app are the common ones that often recommeded by other Mac users.
However, as I also use Linux and Windows machines for development, installing PostgreSQL using grapichal installer from EnterpriseDB would be a more widely used solution that keeps everything consistent across all my environment. This grapichal installer provides an easy and straightforward wizard to get Postgres installed with few simple clicks.
Download
- Go to https://www.enterprisedb.com/software-downloads-postgres
- Select a version. (For example, the latest installer version is
Version 9.4.0
). - Click 'Mac OS X' to download for Mac.
Install
- Install from the downloaded file
postgresql-9.4.0-1-osx.dmg
just like any other Mac installers. - Follow through the installation wizard with the default options.
- Installing Stack Builder is optional and can be omitted.
Add to PATH
-
Locate where PostgreSQL's binary is. By default, it should be
/Library/PostgreSQL/9.4/bin/psql
, where 9.4 is the PostgreSQL version number. Otherwise, use the followingfind
command to find the path.sudo find / -name "psql"
-
Open
~/.bash_profile
with following command.open ~/.bash_profile
-
Add the following line to
.bash_profile
using the PostgreSQL's binary path.PATH=$PATH:/Library/PostgreSQL/9.4/bin
Install pgAdmin
pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL. It helps users manage PostgreSQL databases through graphical interfaces.
Install
- Download Mac OS dmg installer from https://www.pgadmin.org/download/macos4.php.
- Install it (e.g. the latest is
pgadmin3-1.20.0.dmg
).
Connect to server
- Open up pgAdmin III from the applications.
- The local DB should be already shown up in Obeject Browser -> Server Groups -> Servers -> PostgreSQL 9.4 (localhost:5432). If not, manually add a server pointing to
localhost:5432
or the port number specified when installing PostgreSQL.
Install pg gem
- Open up a terminal window
-
Find out where
pg_config
is using the command below. By default, it should be/Library/PostgreSQL/9.4/bin/pg_config
for PostgreSQL 9.4.sudo find / -name "pg_config"
-
Install the gem with
pg-config
path explicitly specified.gem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config
Update Ruby on Rails project
-
Update 'Gemfile'. Replace
gem 'sqlite3'
withgem 'pg'
. -
Run
bundle install
. -
Open
config/database.yml
file and update it like the following:
Original (for SQLite):
New (For PostgreSQL):
Create DB using PostgreSQL
rake db:create && rake db:migrate
Further Reading
PostgreSQL Introduction: How To Insert Data Into A PostgreSQL Database - Nicholas Brown