安裝 PostGIS¶
PostGIS 為 PostgreSQL 新增了地理物件支援,使其轉變為空間資料庫。GEOS、PROJ 和 GDAL 應在建置 PostGIS 之前安裝。您可能還需要其他函式庫,請參閱 PostGIS 需求。
當 GeoDjango 與 PostGIS 一起使用時,需要 psycopg 或 psycopg2 模組作為資料庫介面卡。
在 Debian/Ubuntu 上,建議您安裝以下套件:postgresql-x
、postgresql-x-postgis-3
、postgresql-server-dev-x
和 python3-psycopg3
(x 與您要安裝的 PostgreSQL 版本相符)。或者,您可以從原始碼建置。如果您使用的是 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 拓撲功能。如果您計劃在某些時候使用這些功能,也可以執行 CREATE EXTENSION postgis_topology;
來安裝 postgis_topology
擴充功能。
管理資料庫¶
要管理資料庫,您可以使用 pgAdmin III 程式(geodjango
空間資料庫和使用者,可以從 SQL Shell 以 postgres
使用者身分執行以下操作
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;