Установка PostGIS
PostGIS добавляет поддержку географических объектов в PostgreSQL, превращая его в пространственную базу данных. Перед сборкой PostGIS необходимо установить GEOS, PROJ и GDAL. Возможно, понадобятся и дополнительные библиотеки; см. требования PostGIS.
Для использования GeoDjango с PostGIS в качестве адаптера базы данных необходим модуль psycopg или psycopg2.
В Debian/Ubuntu рекомендуется установить следующие пакеты: postgresql-x, postgresql-x-postgis-3, postgresql-server-dev-x и python3-psycopg3 (x соответствует версии PostgreSQL, которую вы хотите установить). Кроме того, можно собрать из исходного кода. Если вы используете macOS или Windows, ознакомьтесь с инструкциями для соответствующей платформы.
После установки
Создание пространственной базы данных
PostGIS включает расширение для PostgreSQL, используемое для включения пространственных функций:
$ createdb <db name> $ psql <db name> > CREATE EXTENSION postgis;
Чтобы выполнить 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_raster. Установить расширение можно с помощью операции миграции CreateExtension или напрямую, выполнив CREATE EXTENSION postgis_raster;.
В настоящее время GeoDjango не использует функции топологии PostGIS. Если вы планируете использовать эти возможности в будущем, можно также установить расширение postgis_topology, выполнив CREATE EXTENSION
postgis_topology;.
Управление базой данных
Для администрирования базы данных можно использовать программу pgAdmin III () или оболочку SQL (). Например, чтобы создать пространственную базу данных geodjango и пользователя, в оболочке SQL можно выполнить следующую команду от имени пользователя postgres:
postgres# CREATE USER geodjango PASSWORD 'my_passwd'; postgres# CREATE DATABASE geodjango OWNER geodjango;
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/6.0/ref/contrib/gis/install/postgis/