Установка PostGIS ¶
PostGIS добавляет в PostgreSQL поддержку географических объектов, что делает его пространственной базой данных. Перед компиляцией PostGIS необходимо установить GEOS , PROJ.4 и GDAL . Вам могут понадобиться другие библиотеки, см. Требования PostGIS .
Модуль psycopg2 является обязательным в качестве адаптера базы данных при использовании GeoDjango с PostGIS.
В Debian / Ubuntu рекомендуется установить следующие пакеты: postgresql-xx, postgresql-xx-postgis, postgresql-server-dev-xx, python-psycopg2 (где xx - это версия PostgreSQL, которую вы хотите установить) , Также можно строить из исходников . См. Конкретные инструкции для вашей платформы, если вы работаете с macOS или Windows .
После установки ¶
Создание пространственной базы данных ¶
PostGIS 2 содержит расширение для PostgreSQL, используемое для включения пространственных функций:
$ createdb <db name>
$ psql <db name>
> CREATE EXTENSION postgis;
Пользователь базы данных должен быть root, чтобы иметь право на запуск . Эта команда выполняется во время процесса . Альтернативой является использование операции миграции в вашем проекте:CREATE EXTENSION postgis;
migrate
from django.contrib.postgres.operations import CreateExtension
from django.db import migrations
class Migration(migrations.Migration):
operations = [
CreateExtension('postgis'),
...
]
Если вы планируете использовать растровые функции PostGIS в PostGIS 3+, вам также следует активировать postgis_raster
расширение. Вы можете установить расширение с помощью CreateExtension
операции миграции или напрямую, запустив .CREATE EXTENSION postgis_raster;
GeoDjango в настоящее время не использует никаких функций топологии PostGIS . Если вы планируете использовать эти функции в какой-то момент, вы также можете установить расширение postgis_topology
, запустив .CREATE EXTENSION postgis_topology;
Управление базой данных ¶
Для администрирования базы данных вы можете использовать программу pgAdmin III ( geodjango
, вот что можно ввести в оболочке SQL, запущенной с пользователем postgres
:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;