Setup Postgres
Setup and configuring a postgres server for development
How to setup Postgres
Postgres is a transactional sql open source database that has some similarities with Oracle. For a production environment, Heroku Postgres is quite a great worry-free service.
Setup on OS X
To install on OS X, via brew:
brew install postgresql
After you’ve setup
initdb /usr/local/var/postgres
mkdir -p ~/Library/LaunchAgents
ln -sfv /usr/local/Cellar/postgresql/*/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
To start postgres on a homebrew install, run:
launchctl start homebrew.mxcl.postgresql
To stop on homebrew install:
launchctl stop homebrew.mxcl.postgresql
Tip: You can see a list of all services running in launchctl by running `launchctl list`
Configuration is stored in /usr/local/var/postgres/postgresql.conf
.
Setup on Ubuntu
To install Postgres 9 packgages you need to add Martin Pitt’s PPA, via:
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
To install on Ubuntu, run:
sudo apt-get install postgresql-9.0 postgresql-contrib-9.1 libpq-dev
Configuration is stored at /etc/postgresql/9.0/main
and data at /var/lib/postgresql/9.0/main
.
For development, you can turn off ident
user authentication strategy for the db users, this will trust all local connections. Replace all instances of ident
with trust
in /etc/postgres/9.0/main/pg_hba.conf
.
Current pg_hba.conf
file:
localhost all all ident
changes to:
localhost all all trust
To start postgres on ubuntu run:
sudo service postgresql start
Setting up a postgres user
To setup a postgres db user, you’ll need to run the following:
On Ubuntu, you’ll need to be postgres
system user, by running sudo su postgres
.
createuser -s -P appadmin
Enter password for new role: password
Enter it again: password
Obviously, you should pick a secure password for setting this up.
Tooling
To manage your postgres db, pgAdmin cross-platform tool comes in very handy. To install on OS X, grab the dmg from their site. Alteratively, you can just use the psql command line tool.