安装 PostGIS¶
GEOS、PROJ 和 GDAL 应在构建 PostGIS 之前安装。你可能还需要额外的库,参见 PostGIS 要求 。
使用 PostGIS 的 GeoDjango 需要 psycopg 或 psycopg2 模块作为数据库适配器。
在 Debian/Ubuntu 上,建议安装以下软件包:postgresql-x
、postgresql-x-postgis-3
、postgresql-server-dev-x
和 python3-psycopg3
(x 对应您想要安装的 PostgreSQL 版本)。或者,您可以使用 从源代码构建 的方法。如果您使用的是 macOS 或 Windows,请参考平台特定的说明。
安装后¶
创建一个空间数据库¶
PostGIS includes an extension for PostgreSQL that's used to enable spatial functionality:
$ 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"), ...]
If you plan to use PostGIS raster functionality, you should also activate the
postgis_raster
extension. You can install the extension using the
CreateExtension
migration
operation, or directly by running CREATE EXTENSION postgis_raster;
.
GeoDjango 目前没有利用任何 PostGIS 拓扑功能。如果你打算在某些时候使用这些功能,你也可以通过发出 CREATE EXTENSION postgis_topology;
来安装 postgis_topology
扩展。
管理数据库¶
要管理数据库,您可以使用 pgAdmin III 程序 (postgres
用户的身份创建一个名为 geodjango
的空间数据库和用户,可以执行以下命令:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;