Puesta a punto de PostgreSQL y PostGis en Ubuntu o Debian - mgaitan/preciosa GitHub Wiki
En el siguiente artículo vamos a ver cómo instalar la base de datos PostgreSQL y el soporte para objetos geográficos que aporta PostGis.
También vamos a necesitar GDAL, una librería para manejo de datos geoespaciales necesaria para que GeoDjango funcione.
Instalación
Todo lo que necesitamos hacer es instalar los paquetes postgresql-9.1, postgresql-9.1-postgis y gdal-bin:
$ sudo apt-get install postgresql-9.1 postgresql-9.1-postgis gdal-bin
- El paquete gdal-bin sólo es necesario instalarlo en el sistema donde vamos a estar trabajando con GeoDjango. Si vamos a instalar la base de datos en un VirtualBox no hace falta.
En este momento ya tendríamos todo listo, tenemos que configurar.
Configuración
La configuración de PostgreSQL tiene mala prensa, pero no es muy complicada. Aclaro que esta configuración es para un entorno de desarrollo, para una puesta en producción habría que evaluar el tema de los usuarios.
Crear usuario de PostgreSQL
- Nos conectamos a PostgreSQL con permisos del usuario del sistema postgres.
sudo -u postgres psql
- Ejecutamos la consulta SQL para crear un nuevo usuario.
CREATE ROLE dev LOGIN PASSWORD 'dev' SUPERUSER VALID UNTIL 'infinity';
- para entornos de PRODUCCION, preferentemente crear un usuario sin permisos de superusaurio y darle todos los permisos en la base
Creación de plantilla de base de datos PostGis
En PostgreSQL las tablas heredan de una plantilla por defecto, en este caso vamos a crear una con soporte geoespacial de PostGis.
- Creamos la plantilla de PostGis y le instalamos sus funcionalidades:
sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis_comments.sql
- Tener en cuenta de revisar la ruta /usr/share/postgresql/9.1/contrib/postgis-... ya que a veces cambia de versión en versión o puede faltar postgis_comments.sql, lo cual no es ningún problema.
Creación de la base de datos con soporte geoespacial.
Bueno, ya casi estamos! Vamos a crear una base de datos que herede el esquema de PostGis y quede tutelada por nuestro usuario.
- Nos conectamos, otra vez, a PostgreSQL con permisos del usuario del sistema postgres.
sudo -u postgres psql
CREATE DATABASE preciosa
WITH ENCODING='UTF8' OWNER=dev
TEMPLATE=template_postgis
LC_COLLATE='en_US.UTF-8'
LC_CTYPE='en_US.UTF-8'
CONNECTION LIMIT=-1;
- Tengan en cuenta que si sus locales están en español en lugar de 'en_US.UTF-8' van a tener que usar 'es_AR.UTF-8' o lo que les corresponda.