Postgis / Geodjango: невозможно определить версию PostGIS для базы данных - PullRequest
27 голосов
/ 21 сентября 2011

Я пытаюсь запустить приложение GeoDjango. Я установил Postgres & PostGIS, используя brew на Lion. Я создал базу данных, используя template_postgis: createdb -T template_postgis test.

Когда я запускаю python manage.py syncdb, я получаю следующую ошибку:

django.core.exceptions.ImproperlyConfigured: невозможно определить Версия PostGIS для базы данных «Тест». GeoDjango требует как минимум PostGIS версия 1.3. Была ли база данных создана из пространственной базы данных шаблон

Как я могу отследить источник ошибки? Я проверил, что пользователь и пароль в конфигурации имеют доступ к базе данных и т. Д.

Ответы [ 5 ]

39 голосов
/ 30 ноября 2013

Просто добавьте в ваши settings.py правильную версию postgis:

POSTGIS_VERSION = (2, 0, 3)

19 голосов
/ 16 октября 2011

В качестве первого шага отладки: попробуйте проверить версию шаблона postgis вручную, например, в командной строке подключитесь к вашей базе данных с помощью psql test и запросите с помощью select postgis_lib_version();. Эта функция должна быть определена в template_postgis и возвращать некоторое число. Пример вывода:

$ psql test
psql (9.0.4)
Type "help" for help.

test=# select postgis_lib_version();

 postgis_lib_version
---------------------
 1.5.2
(1 row)

Если произошла ошибка, вы знаете, что ошибка в базе данных.

10 голосов
/ 21 апреля 2015

Решением для меня было запустить следующее в терминале postgres:

psql database_name

database_name=# CREATE EXTENSION postgis;

Если вы получаете ERROR: relation "spatial_ref_sys" already exists, выполните следующую команду перед CREATE EXTENSION postgis:

 drop table spatial_ref_sys;
 drop table geometry_columns;
3 голосов
/ 23 сентября 2013

И если предыдущий выбор возвращает ошибку, возможно, в этой базе данных установлена ​​одна конкретная версия PostGIS, что вы обновили Postgres.app до более новой версии, которая связывает более новую версию PostGIS.Например, после недавнего обновления с Postgis 2.0 до 2.1

В этом случае вы можете выполнить миграцию после копирования некоторых библиотек, как описано в этот билет

2 голосов
/ 26 ноября 2013

, если вы используете django_debug_toolbar, попробуйте удалить его или закомментировать debug_toolbar/utils/tracking/db.py строку 152, как предложено для https://github.com/django-debug-toolbar/django-debug-toolbar/issues/442

...