与postgis geodjango将无法正常工作

时间:2012-08-21 23:01:21

标签: django postgresql postgis geodjango

我是geodjango的新手,我有以下设置:

DATABASES = {
    "default" : {
        'ENGINE': 'django.contrib.gis.db.backends.postgis', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'dbname',                      # Or path to database file if using sqlite3.
        'USER': 'django',                      # Not used with sqlite3.
        'PASSWORD': 'somepass',                  # Not used with sqlite3.
        'HOST': '127.0.0.1',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.gis',
    'django.contrib.admin',
    'django.contrib.admindocs',
    'django.contrib.gis',
    "app.core",
)

我用以下命令创建了db:

postgres@rewitaqia:~$ createdb -U postgres -T template_postgis -O django dbname

但是当我尝试同步数据库时,它说:

django.core.exceptions.ImproperlyConfigured: Cannot determine PostGIS version for database "dbname". GeoDjango requires at least PostGIS version 1.3. Was the database created from a spatial database template?

此外,当我在psql中尝试此操作时,似乎db tas并非真正从postgis模板创建:

db_name=# select postgis_lib_version();
ERROR:  no existe la función postgis_lib_version()
ŘÁDKA 1: select postgis_lib_version();
                ^
DOPORUČENÍ:  Ninguna función coincide en el nombre y tipos de argumentos. Puede desear agregar conversión explícita de tipos.

无论如何,感谢您阅读。

1 个答案:

答案 0 :(得分:4)

Visgean,

首次设置PostGIS时,我遇到了很多与您相同的问题,因此我创建了一篇详细介绍PostGIS设置的文章。很抱歉插入我自己的文章,但我创建它以帮助记录设置过程。 http://www.chicagodjango.com/blog/geo-django-quickstart/

看看上面的问题,很难确切地说出问题所在。但是,您可能会检查会产生PostGIS错误的内容:

无论如何,希望这会有所帮助。乔