# Django 5.0.9.dev20240806133106 ドキュメント

# PostGIS のインストール

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 の場合は、プラットフォーム固有の手順を参照してください。

Changed in Django 4.2:

`psycopg` 3.1.8以降のサポートが追加されました。

## インストール後

### 空間データベースを作成する

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 3+ で PostGIS のラスタ機能を使用する予定がある場合は、 `postgis_raster` 拡張も有効化する必要があります。この拡張機能は `CreateExtension` マイグレーションオペレーションを使用してインストールするか、直接 `CREATE EXTENSION postgis_raster;` を実行してインストールすることもできます。

GeoDjango は今のところ PostGIS topology functionality を利用していません。これらの機能をいつか使いたければ、 `CREATE EXTENSION postgis_topology;` を実行して `postgis_topology` 拡張機能をインストールすることもできます。

### データベースの管理

データベースの管理には、pgAdmin III プログラム (Start ‣ PostgreSQL X ‣ pgAdmin III) または SQL Shell (Start ‣ PostgreSQL X ‣ SQL Shell) を使用できます。例えば、 `geodjango` 空間データベースとユーザを作成するには、`postgres` ユーザとして SQL Shell から次のコマンドを実行します:

    postgres# CREATE USER geodjango PASSWORD 'my_passwd';
    postgres# CREATE DATABASE geodjango OWNER geodjango;