PostGIS agrega soporte a objetos geográficos a PostgreSQL, convirtiéndolo en una base de datos espacial. GEOS, PROJ y GDAL deben ser instalados antes de construir PostGIS. Es posible que también necesites bibliotecas adicionales, véase requisitos de PostGIS.
El módulo psycopg o psycopg2 es necesario para su uso como adaptador de base de datos cuando se utiliza GeoDjango con PostGIS.
En Debian/Ubuntu, se le aconseja instalar los siguientes paquetes: postgresql-x, postgresql-x-postgis-3, postgresql-server-dev-x y python3-psycopg3 (x coincidiendo con la versión de PostgreSQL que deseas instalar). Alternativamente, puedes compilar desde fuentes. Consulta las instrucciones específicas del plataforma si estás en macOS o Windows.
PostGIS incluye una extensión para PostgreSQL que se utiliza para habilitar la funcionalidad espacial:
$ createdb <db name>
$ psql <db name>
> CREATE EXTENSION postgis;
El usuario de la base de datos debe ser superusuario para ejecutar CREATE EXTENSION postgis;. La orden se ejecuta durante el proceso de migración. Una alternativa es utilizar una operación de migración en tu proyecto:
from django.contrib.postgres.operations import CreateExtension
from django.db import migrations
class Migration(migrations.Migration):
operations = [CreateExtension("postgis"), ...]
Si planeas utilizar funcionalidad raster de PostGIS, también debes activar la extensión postgis_raster. Puedes instalar la extensión utilizando la operación de migración CreateExtension, o directamente ejecutando CREATE EXTENSION postgis_raster;.
GeoDjango no aprovecha actualmente ninguna funcionalidad topológica de PostGIS. Si planeas utilizar esas características en algún momento, también puedes instalar la extensión postgis_topology mediante la orden CREATE EXTENSION postgis_topology;.
Para administrar la base de datos, puedes utilizar el programa pgAdmin III () o la Consola SQL (). Por ejemplo, para crear una base de datos espacial geodjango y un usuario, se pueden ejecutar las siguientes sentencias en la Consola SQL como el usuario postgres:
postgres# CREATE USER geodjango PASSWORD 'my_passwd';
postgres# CREATE DATABASE geodjango OWNER geodjango;
may 31, 2026