安装 PostGIS — Django 文档

来自菜鸟教程
Django/docs/3.2.x/ref/contrib/gis/install/postgis
跳转至:导航、​搜索

安装 PostGIS

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

当使用带有 PostGIS 的 GeoDjango 时,需要 psycopg2 模块用作数据库适配器。

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

安装后

创建空间数据库

PostGIS 2 包括用于启用空间功能的 PostgreSQL 扩展:

$ createdb  <db name>
$ psql <db name>
> CREATE EXTENSION postgis;

数据库用户必须是超级用户才能运行 CREATE EXTENSION postgis;。 该命令在 :djadmin:`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 拓扑功能 。 如果您打算在某个时候使用这些功能,您还可以通过发出 CREATE EXTENSION postgis_topology; 来安装 postgis_topology 扩展。


管理数据库

要管理数据库,您可以使用 pgAdmin III 程序 (Start ‣ PostgreSQL 9.x ‣ pgAdmin III) 或 SQL Shell (Start ‣ PostgreSQL 9.x ‣ SQL Shell )。 例如,要创建 geodjango 空间数据库和用户,可以作为 postgres 用户从 SQL Shell 执行以下操作:

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