Ubuntu put their postgresql client bits where gems can’t see them.
Google turned up the answer in the past, but today I had to figure it out myself.
So for the next time, here’s how to get the client bits needed for a gem build.
planb $ sudo apt-get install postgresql-client-8.2 libpq-dev
planb $ sudo gem install postgres -- \
--with-pgsql-include-dir=/usr/include/postgresql \
--with-pgsql-lib-dir=/usr/lib/postgresql
Rails (well, rake) calls out to dropdb and createdb to flush the test database. If you want to do TDD, make sure the rails DB user has ‘createdb’ rights and owns the 3 databases:
postgres@elephantom $ createuser -PREdS railsguy
postgres@elephantom $ createdb -O railsguy live
postgres@elephantom $ createdb -O railsguy dev
postgres@elephantom $ createdb -O railsguy test
dropdb/createdb need access to the ‘postgres’ database to operate. Until you know this,
errors like
FATAL: no pg_hba.conf entry for host “1.2.3.4”, user “railsguy”, database “postgres”, SSL off
will have you staring at database.yml until your eyes cross.
you might as well have a pg_hba.conf line like
#TYPE DB USER CIDR METHOD
host all railsguy 1.2.3.4/32 md5
and have done.