PostGIS 向PostgreSQL添加地理对象支持,将其转换为空间数据库。 GEOS , PROJ 和 GDAL 应在建造PostGIS之前安装。您可能还需要其他库,请参见 PostGIS requirements .
这个 psycopg 或 psycopg2 在将GeoDjango与PostGIS结合使用时,需要使用模块作为数据库适配器。
在Debian/Ubuntu上,建议您安装以下程序包: postgresql-x
, postgresql-x-postgis-3
, postgresql-server-dev-x
,以及 python3-psycopg3
(X与您要安装的PostgreSQL版本匹配)。或者,您也可以 build from source 。如果您在上,请参阅特定于平台的说明 macOS 或 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程序 (geodjango
空间数据库和用户,可以从SQL Shell中以 postgres
用户:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
7月 22, 2024