1

編集:

OK、私は持っていたバージョンをアンインストールし、以下の指示に従って再インストールしました:

私は走った:

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;" 

その後、実行しました:

$ createdb -T template_postgis newdb
$ createuser --createdb poop
Shall the new role be a superuser? (y/n) y

これが私のdbリストで得られるものです:

$ 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)

私のバージョンが正しいことを確認します:

$ 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)

すべての依存関係が処理され、データベースが正常に見え、すべてがきれいに見えます。(ただし、上記のすべてのユーザーがアクセスできるようにしたgeograph_columsはどこにありますか?)

さて、settings.py:

DATABASES = {
    'default': {
         'ENGINE': 'django.contrib.gis.db.backends.postgis',
         'NAME': 'newdb',
         'USER': 'poop', # yes, I named my user poop
     }
}

今私が走るとき:

$ python manage.py syncdb

次で終わるさまざまなファイルのリンクを取得します。

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"?

明らかに、私はそれにpsqlできるので、私のデータベースは実行されています。ただし、権限が正しく設定されていませんか?

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

回答: Djangoのsyncdbを実行しているときのOSX10.7.3でのPostgresqlソケットエラー

4

1 に答える 1

1

現在のDjangoリリースがPostGIS2.0と互換性があるかどうかはわかりません。PostGIS1.5をインストールしてみてください。これは、PostgreSQL9.0のインストールを意味する場合もあります。これらのパッケージはどちらも自作ですが、バージョンの公式を「タップ」する必要があります。

brew update
brew tap homebrew/versions
brew install postgresql9

postgis15次に、デフォルトのパッケージを変更してポイントする必要がありますpostgresql9(パッケージの最新の更新により、とのpostgresql互換性がなくなりpostgis15、数式はまだ更新されていません)。

brew edit postgis15

の2つのインスタンスをに変更しますpostgresqlpostgresql9例:

12行目:

depends_on 'postgresql9'

30行目:

postgresql = Formula.factory 'postgresql9'

次に、postgis15をインストールします。

brew install postgis15

以前と同じように、関連するデータベースを作成します。

psqlとPythonpsycopg2パッケージが正しいデータベース(postgres 9.0)に接続していることに注意してください。psycopg2さらに、正しいライブラリに対してコンパイルする必要があります。これを確実にする最も簡単な方法は、postgis15をインストールする前に、postgresqlまず自作からパッケージをアンインストールし(他の目的で使用していない場合)、データディレクトリを邪魔にならない場所に移動することです。/usr/local/var/postgres

brew uninstall postgresql
mv /usr/local/var/postgres /usr/local/var/postgres9.1
initdb /usr/local/var/postgres -E utf8
brew install postgresql9

...そしてpsycopg2新しいライブラリに対して(virtualenvに)再コンパイルします:

pip uninstall psycopg2
pip install psycopg2

これは役に立たないかもしれませんが、パッチを実験、デバッグ、送信する意思がない限り、動作することがわかっているバージョンを使用することをお勧めします:-)

于 2012-09-22T21:57:07.883 に答える