EDIT:
Ok, I uninstalled the versions that I had and reinstalled according to the directions listed below:
I ran:
POSTGIS_SQL_PATH=/usr/local/Cellar/postgis15/1.5.3/share/postgis
# Creating the template spatial database.
createdb -E UTF8 template_postgis
createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
# Allows non-superusers the ability to create from this template
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"
# Loading the PostGIS SQL routines
psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql
# Enabling users to alter spatial tables.
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
then ran:
$ createdb -T template_postgis newdb
$ createuser --createdb poop
Shall the new role be a superuser? (y/n) y
Now Here is what I get for my db list:
$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
------------------+-------+----------+-------------+-------------+-------------------
newdb | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/User +
| | | | | User=CTc/User
template1 | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/User +
| | | | | User=CTc/User
template_postgis | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)
Making sure my version is correct:
$ psql newdb
psql (9.0.8)
Type "help" for help.
newdb=# SELECT PostGIS_full_version();
postgis_full_version
--------------------------------------------------------------------------------------------------
POSTGIS="1.5.3" GEOS="3.3.5-CAPI-1.7.5" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.7.3" USE_STATS
(1 row)
newdb=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | User
public | spatial_ref_sys | table | User
(2 rows)
It looks like all dependencies are taken care of and the database looks happy, everything looks clean! (However, where is the geograph_colums I grated all users access to above?)
Now, settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'newdb',
'USER': 'poop', # yes, I named my user poop
}
}
now when I run:
$ python manage.py syncdb
I get a link through of various files ending with:
psycopg2.OperationalError: 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"?
Obviously my db is running because I can psql into it. However are permissions set up incorrectly?
pg_hba.conf:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
ANSWER:
Postgresql socket error on OSX 10.7.3 when running Django's syncdb
I’m not sure if the current Django release is compatible with PostGIS 2.0. You might like to try installing PostGIS 1.5. This may also mean installing PostgreSQL 9.0. Both these packages are in homebrew, but you need to “tap” the versions formulae:
You’ll then need to change the default
postgis15package to point topostgresql9(the most recent update of thepostgresqlpackage made it incompatible withpostgis15, and the formula hasn’t been updated yet):Change the two instances of
postgresqltopostgresql9, eg:Line 12:
Line 30:
Then install postgis15:
and create the relevant databases as you did before.
Be careful that
psqland the Pythonpsycopg2package are connecting to the correct database (postgres 9.0).psycopg2additionally needs to be compiled against the correct libraries. The easiest way to ensure this is to uninstall thepostgresqlpackage from homebrew first (if you aren’t using it for anything else) and move the/usr/local/var/postgresdata directory out of the way, before installing postgis15:… and recompiling
psycopg2against the new libraries (into your virtualenv):This may not help, but it’s always good to use versions that are known to work, unless you’re willing to experiment, debug and submit patches 🙂