Установка PostGIS

PostGIS добавляет поддержку географических объектов в PostgreSQL, превращая его в пространственную базу данных. GEOS, ПРОЕКТ и GDAL должны быть установлены до сборки PostGIS. Вам также могут понадобиться дополнительные библиотеки, см. PostGIS requirements.

Модуль psycopg2 необходим для использования в качестве адаптера базы данных при использовании GeoDjango с PostGIS.

On Debian/Ubuntu, you are advised to install the following packages: postgresql-x, postgresql-x-postgis-3, postgresql-server-dev-x, and python3-psycopg2 (x matching the PostgreSQL version you want to install). Alternately, you can build from source. Consult the platform-specific instructions if you are on macOS or Windows.

После установки

Создание пространственной базы данных

PostGIS 2 включает расширение для 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 3+, вам также следует активировать расширение postgis_raster. Вы можете установить расширение с помощью операции миграции CreateExtension или напрямую, выполнив CREATE EXTENSION postgis_raster;.

В настоящее время GeoDjango не использует никаких PostGIS topology functionality. Если вы планируете использовать эти возможности в какой-то момент, вы также можете установить расширение postgis_topology, выпустив CREATE EXTENSION postgis_topology;.

Управление базой данных

Для администрирования базы данных можно использовать либо программу pgAdmin III (Start ‣ PostgreSQL X ‣ pgAdmin III), либо оболочку SQL Shell (Start ‣ PostgreSQL X ‣ SQL Shell). Например, для создания пространственной базы данных geodjango и пользователя в SQL Shell от имени пользователя postgres можно выполнить следующие действия:

postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
Вернуться на верх