安装 PostGIS

PostGIS 为 PostgreSQL 添加了地理对象支持,将其变成了一个空间数据库。在构建 PostGIS 之前,应先安装 GEOSPROJGDAL。您可能还需要其他库,请参阅 PostGIS 需求

当使用 GeoDjango 和 PostGIS 时,需要 psycopgpsycopg2 模块作为数据库适配器。

在 Debian/Ubuntu 上,建议安装以下软件包:postgresql-xpostgresql-x-postgis-3postgresql-server-dev-xpython3-psycopg3(x 与您要安装的 PostgreSQL 版本匹配)。或者,您可以 从源代码构建。如果您使用的是 macOSWindows,请参阅特定平台的说明。

安装后

创建空间数据库

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 拓扑功能。如果您计划在某个时候使用这些功能,也可以通过发出 CREATE EXTENSION postgis_topology; 来安装 postgis_topology 扩展。

管理数据库

要管理数据库,您可以使用 pgAdmin III 程序(开始 ‣ PostgreSQL X ‣ pgAdmin III)或 SQL Shell(开始 ‣ PostgreSQL X ‣ SQL Shell)。例如,要创建一个 geodjango 空间数据库和用户,可以以 postgres 用户身份从 SQL Shell 执行以下操作。

postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
返回顶部