PostGIS向PostgreSQL添加地理对象支持,将其转换为空间数据库。 应在建造PostGIS之前安装GEOS,PROJ.4和GDAL。 您可能还需要其他库,请参见PostGIS要求。
在使用GeoDjango和PostGIS时,需要使用psycopg2模块作为数据库适配器。
在Debian / Ubuntu上,建议安装以下软件包:postgresql-x.x,postgresql-x.x-postgis,postgresql-server-dev-x.x,python-psycopg2(x.x匹配您要安装的PostgreSQL版本)。 或者,您可以从源代码构建。 如果您在macOS或Windows上,请参阅平台特定说明。
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'),
...
]
GeoDjango目前没有利用任何PostGIS拓扑功能。
如果您打算在某些时候使用这些功能,还可以通过发布CREATE EXTENSION postgis_topology来安装
postgis_topology
; T5> T2>。
要管理数据库,您可以使用pgAdmin III程序(
)或SQL Shell(例如,要创建geodjango
空间数据库和用户,可以从SQL Shell作为postgres
用户执行以下操作:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
2017年9月6日