martes, 14 de octubre de 2014

Introducción a PostgreSQL


Para el que no lo sepa, PostgreSQL es un potente gestor de bases de datos relacionales libre. Por alguna razón, en las escuelas de Ingeniería se acostumbra más a enseñar Oracle Database o MySQL (propiedad de Oracle), que si bien nadie duda de la calidad de estos gestores, no se les puede considerar libres (no, MySQL no es libre, como mucho es open source), que gestores verdaderamente libres como PostgreSQL o MariaDB (fork de MySQL que viene pegando fuerte últimamente).

Personalmente soy de la opinión de que en las escuelas de informática debería enseñarse con software libre siempre, y recurrir al privativo sólo y únicamente si la alternativa libre está realmente muy por debajo en términos de calidad o rendimiento, o directamente es inexistente.

Sin embargo, en el caso que hoy nos ocupa, no veo razón objetiva para no enseñar las bondades y el correcto uso y configuración, al menos básicos, de PostgreSQL en cualquier universidad pública que se precie del país. Además, si sois fans del framework de desarrollo web Django (ya hablaremos largo y tendido sobre ésto), sabréis que en las últimas versiones de Django para Python 3 el sistema gestor de bases de datos recomendado es PostgreSQL (de hecho no hay driver compatible con MySQL).

Bien, ¡vamos al lío!
Comenzaremos instalando el gestor de PostgreSQL para posteriormente instalar y configurar un par de herramientas (pgAdmin III y phpPgAdmin) que nos ayudarán mucho en nuestro día a día. Por desgracia, no existe para PostgreSQL nada tan completo, al menos libre, como el fantástico MySQL Workbench, pero trataremos de sortear este inconveniente con las herramientas ya mencionadas y seguro que al final no lo echaréis tanto de menos.

Las instrucciones de terminal, como de costumbre, están testadas para Linux Mint 17 / Ubuntu 14.04, pero es altamente probable que funcionen en Debian y otros sistemas derivados.

Comenzamos pues añadiendo, para asegurarnos la última versión del software, el repositorio de PostgreSQL a nuestro apt/sources del siguiente modo (sustituid “trusty” por vuestra versión de ubuntu / mint / debian). Abrimos un terminal de Linux y escribimos (podéis copiar y pegar):

Ahora que hemos añadido el repositorio y hecho update, es hora de instalar PostgreSQL con algunos paquetes extra recomendados:

Es importante saber que cuando se instala PostgreSQL, éste, al estilo Oracle, crea una base de datos propia donde almacena la metainformación.
También crea un superusuario por defecto, lo que sería un “root”, al cual llama “postgres” y cuya contraseña inicial es aleatoria y debe ser cambiada por una que queramos (“root” por ejemplo).
Al mismo tiempo, aprovecharemos esto para crear un usuario “developer”, con contraseña también “developer” y una base de datos “pruebas” para ilustrar un ejemplo de cómo conceder privilegios a un usuario sobre una base de datos:

Para borrar nuestro historial local de instrucciones de PostgreSQL (y que no quede registrada así la instrucción en la que poníamos la contraseña del superusuario), deberemos borrar el archivo “.psql_history”:

Ahora podemos decir que tenemos instalado y medio configurado el sistema para que eso empiece a echar a rodar. Podemos cerrar ya el terminal. Sin embargo, vamos a continuar con este tutorial explicando muy brevemente la configuración de herramientas para que todo esto sea más fácil de usar.

Si comenzamos con pgAdmin III, que es lo más parecido a MySQL Workbench que tiene oficialmente PostgreSQL, lo único que debemos hacer es abrirlo (el programa ya lo instalamos antes), pinchar en el icono del enchufe, rellenar los campos:

Si todo ha ido bien deberemos ver algo parecido a esto:


Con esto habremos acabado de configurar pgAdmin III. A partir de ahí, podréis curiosear a través de las interfaces del programa todo lo que se puede hacer. Sin embargo, yo soy más fan del phpPgAdmin que, como alguno habrá intuido ya, es la versión de phpMyAdmin para PostgreSQL. Son prácticamente idénticos y sin duda alguna, si ya sabéis usar el phpMyAdmin, no tendréis problema alguno en usar esta versión adaptada para nuestro nuevo sistema de base de datos.

Antes que nada, es importante que sepáis que la versión de phpPgAdmin de los repositorios de algunas versiones de Ubuntu / Mint tiene un bug en la instalación, de tal forma que ésta no se realiza correctamente y el programa no funciona cuando la instalación ha terminado. No sé exactamente a cuántas versiones de Ubuntu afecta este bug (tengo comprobado que se da en la 13.10 y la 14.04), pero en cualquier caso no desesperéis, resolverlo es tremendamente sencillo. De todos modos, antes de echarnos las manos a la cabeza, comprobemos si funciona o no nuestra instalación de phpPgAdmin. Para ello, entramos en la url: http://localhost/phppgadmin/

Si os arranca la página correctamente, entonces fantástico. Si por el contrario os tira un error 404, abrid un terminal y escribid lo siguiente:

Probad ahora a recargar la página y comprobad que funciona. Si es así, sólo nos quedará loguearnos, pero ¡atención! hay truco.
Resulta que phpPgAdmin tiene bloqueada por defecto la opción de loguearse con el usuario “postgres”, por lo que si no tenemos otro usuario creado, no seremos capaces de entrar al panel de administración. A pesar de que se recomienda encarecidamente no loguearse nunca como el superusuario, tanto en PostgreSQL como MySQL como cualquier otro sistema de gestión de base de datos, si estamos empeñados en hacerlo igualmente, deberemos abrir el siguiente archivo:

Y buscar la siguiente línea...

...para cambiar el valor de esa variable a false. Con eso habremos acabado y podremos hacer login sin problemas como el superusuario. Deberíais ver algo parecido a esto cuando todo esté listo:


¡Esto ha sido todo! Espero que este tutorial os haya resultado útil y sencillo. No dudéis en preguntar cualquier cosa o plantear cualquier problema que os surja durante el proceso.

¡Un saludo a todos!

No hay comentarios:

Publicar un comentario