安装PostGIS

PostGIS 向PostgreSQL添加地理对象支持,将其转换为空间数据库。 GEOSPROJGDAL 应在建造PostGIS之前安装。您可能还需要其他库,请参见 PostGIS requirements .

这个 psycopgpsycopg2 在将GeoDjango与PostGIS结合使用时,需要使用模块作为数据库适配器。

在Debian/Ubuntu上,建议您安装以下程序包: postgresql-xpostgresql-x-postgis-3postgresql-server-dev-x ,以及 python3-psycopg3 (X与您要安装的PostgreSQL版本匹配)。或者,您也可以 build from source 。如果您在上,请参阅特定于平台的说明 马科斯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`_ ②如果计划在某个时间点使用这些功能,还可以安装 postgis_topology 签发延期 CREATE EXTENSION postgis_topology; .

管理数据库

要管理数据库,您可以使用pgAdmin III程序 (Start ‣ PostgreSQL X ‣ pgAdmin III )或SQLShell (Start ‣ PostgreSQL X ‣ SQL Shell )。例如,要创建一个 geodjango 空间数据库和用户,可以从SQL Shell中以 postgres 用户:

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