Creacion de una Base de Datos PostgreSQL en Ubuntu

Una de nuestras tareas mas frecuentes a la hora de desarrollar aplicaciones es la creación de bases de datos, ya sean aplicaciones especializadas para fármacos, aplicaciones georreferenciadas, o algoritmos de aprendizaje máquina que se re-entrenan periódicamente o tiendas en línea, la gran mayoría de las aplicaciones utilizadas hoy en día requieren el uso de bases de datos para el almacenamiento de las oepraciones o para almacenar los datos necesarios para mostrar a un usuario.

En esta entrega les vamos a mostrar como crear una base de datos en PostreSQL 10.0.

$ sudo apt install postgresql postgresql-contrib

Una vez que se ha instalado postgres debemos configurarlo para que acepte usuario y contraseña (incluso en local) y para poder conectarnos desde otras máquinas (esto lo hacemos porque si generamos un archivo de configuraciones para el servidor de producción y es el mismo que el del ambiente de prubas, pues nos ahorramos un poco de trabajo y nos sirve para avanzar hacia el tratar nuestra infraestructura como código, que es la meta de las Dev Ops). Para esto tenemos que editar el archivo pg_hba.conf

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

Esto nos va a permitir recibir conexiones desde cualquier dirección IPv4 (0.0.0.0) mientras sean utilizando nombre de usuario y contraseña (md5).

Tambien tenemos que cambiar el archivo postgres.conf

listen_addresses = '*' 

Conectarse a la base de datos principal.

Ahora nos conectaremos como el usuario postgres para generar a nuestro usuario de prubas para esto utilizaremos la herramienta de linea de comandos psql.

$ psql -U postgres postgres

una vez conectados a la base de datos postgres podemos generar un usuario de la siguiente manera:

> create user otto with password 'otto123' CREATEDB;

A este usuario vamos a darle permisos de super usuario y que pueda generar bases de datos y tablas

> ALTER USER otto WITH SUPERUSER;

Una vez hecho esto podemos generar nuestra base de datos, salimos de psql, nos conectamos de nuevo con el nuevo usuario

$ psql -U otto -d postgres

Ya conectados a la base postgres generamos la nueva base

> CREATE DATABASE employees;

una vez hecho esto, debemos cambiar la conexion, ya que postgres limita la conexion a una sóla base de datos. para esto usaremos el metacomando \c

> \c employees;

revisamos las bases de datos

> \dt

nos muestra que la base existe y que estamos conectados a ella.