PostGIS は、PostgreSQL に地理オブジェクトのサポートを追加し、それを空間データベースに変えます。PostGIS をビルドする前に、 GEOS、PROJ、GDAL をインストールする必要があります。追加のライブラリが必要な場合もあるので、 PostGIS requirements を参照してください。
GeoDjango を PostGIS で使う場合、データベースアダプタとして psycopg または psycopg2 モジュールが必要です。
Debian/Ubuntuでは、次のパッケージをインストールすることが推奨されます: postgresql-x, postgresql-x-postgis-3, postgresql-server-dev-x, python3-psycopg3 (xはインストールしたいPostgreSQLのバージョンに対応します)。別の方法として、 build from source ことも可能です。 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 topology functionality を利用していません。これらの機能をいつか使いたければ、 CREATE EXTENSION postgis_topology; を実行して postgis_topology 拡張機能をインストールすることもできます。
データベースの管理には、pgAdmin III プログラム () または SQL Shell () を使用できます。例えば、 geodjango 空間データベースとユーザを作成するには、postgres ユーザとして SQL Shell から次のコマンドを実行します:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
4月 02, 2025