How to Install and Use Postgres On OS X For Ruby and Rails Development
I hang out in #nwrug on Freenode, the IRC channel of a Ruby user group here in the UK, and floated the idea of doing a PostgreSQL (a.k.a. Postgres) installation tutorial for Ruby Inside. Coincidentally, it turned out 37signals sysadmin Will Jessop was already working on one so, I present.. Setting up PostgreSQL for Ruby on Rails development on OS X by Will Jessop :-)
The Article..
Will's post is a walkthrough of the process from sitting at an empty terminal prompt through to having a barebones Rails 3 app running on a Postgres powered database. It's entirely Mac OS X focused, so don't expect to enjoy it too much if you're on Linux or Windows!
Will covers:
- installation (super simple with Homebrew)
- start/stop controls for OS X
- initialization
- user creation
- database setup
- installing the
pg
gem
Or, the Screencast!
I still wanted to bring something to the table despite Will's work so I asked if I could make a screencast that roughly followed the same lines as his tutorial and he was up for it. So, I present, a scrappy 13 minute video alternative to the above tutorial:
My walkthrough is somewhat different. I spend a couple of minutes explaining what Postgres is, in case you're not familiar with it, and I use Mike Perham's awesome launchctl controller Lunchy to manage the starting and stopping of Postgres instead of the usual (and arcane) Apple tools. I also make references to Rebecca Black and Mister Mister.
While preparing for this post, I've found a lot of small, useful Ruby libraries that improve the Postgres experience. I'm collecting those together and will be posting with a grab-bag of useful links soon.
June 11, 2011 at 5:51 pm
Have you come across any good GUI tools for working with Postgres? PGAdmin is pretty sad and doesn't have a native OS X look.
Sequel Pro is my favorite DB GUI tools, but it only supports MySQL. Base is pretty good, but only supports SQLite. Navicat has tools for all of the above, but they're insanely expensive.
There just doesn't seem to be one good tool out there for working with multiple database products.
June 12, 2011 at 9:06 pm
Very nice! First time I've tried postgres (outside of heroku), mostly because it was no hassle. Lunchy is awesome, btw. Yay, brew, bundler, and lunchy.
June 22, 2011 at 3:54 pm
@Jared I don't know of any unfortunately, I stick to the CLI. Another option could be PHPPgAdmin if you're really stuck.
June 27, 2011 at 5:20 pm
@jared Navicat for Postgresql is native speed and good in may way of connection/reach to psql on remote side. All of the most things you need is there..
also consider DbVisualizer (java based). If you use many db engines, dbvis is one of the app that you have to consider. Fast, Good UI, Import & Export capabilities and good sql editor inside.
both are good for PG but dbvis is the best choice if you need multiple db engines.
July 13, 2011 at 6:01 pm
Same but for Ubuntu, in Spanish ;)
Postgres on Ubuntu 11.04 for Ruby and Rails development
July 25, 2011 at 2:36 pm
Followed your instructions to the letter, but am getting a permissions issue when I try to run any of the postgres commands (createuser, createdb, pgsql, etc...)
When I get to the step where you createuser i get...
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
createuser: could not connect to database postgres: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
any ideas? Lunchy started postgres with no errors and when I do a status, it shows the plist file as being active. Not sure what the problem could be...
August 20, 2011 at 11:02 pm
Um, you know PostGreSQL is now bundled with Lion...
August 23, 2011 at 10:58 am
With Lion there is in fact another installation of PG. If you run the homebrew one, to get the user created etc. you need to run the right command, something like:
/usr/local/Cellar/postgresql/9.0.4/bin/createuser
Otherwise you will run PG commands with Lion configuration and you will get errors like:
createuser: could not connect to database postgres: could not connect to server:
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?