Установка 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 (geodjango
и пользователя в SQL Shell от имени пользователя postgres
можно выполнить следующие действия:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;