Disponemos de dos métodos para crear una base de datos en PostgreSQL. Antes de poder crear una base de datos, debemos de tener instalado PostgreSQL y crear una instancia donde se almacenan los datos. Para ello podéis ver el curso de instalación avanzada de PostgreSQL 11.
Métodos
En PostgreSQL existen dos formas para crear una base de datos, una es utilizando un comando de Postgres, por lo cual debemos de conectarnos a una base de datos que exista. Y el otro método es utilizar un ejecutable de la instalación de PostgreSQL.
Comandos
Previamente tenemos que conectarnos a una base de datos que ya exista, por ejemplo “postgres” y desde esta conexión utilizamos el siguiente comando:
CREATE DATABASE nuevadb;
Esta nueva base de datos será creada con los mismos objetos que contenga la plantilla “template1”, que al ser una plantilla predeterminada, se encuentra vacía.
Por lo que es posible crear una base de datos nueva a partir de una plantilla que disponga de una serie de objetos como tablas. Para ello:
CREATE DATABASE nuevadb WITH TEMPLATE plantilladb;
Otra de las opciones de las que disponemos es indicarle el propietario de esta nueva base de datos. Simplemente debemos de indicar lo siguiente:
CREATE DATABASE nuevadb WITH OWNER usuario;
Estas dos opciones y otras más como el tablespace, el juego de caracteres o el limite de conexiones, se puede indicar en una única sentencia separando por espacios cada una de ella:
CREATE DATABASE nuevadb TEMPLATE plantilladb OWNER usuario TABLESPACE mydirectorio;
Ejecutable para la creación de la BBDD
En el directorio de los binarios de PostgreSQL, disponemos de un ejecutable con el que podemos crear una base de datos, sin tener que conectar a una existente previamente.
De la siguiente forma se crea una base de datos utilizando el ejecutable de PostgreSQL:
createdb nuevadb
También es posible crear una base de datos a partir de una plantilla utilizando este ejecutable, para ello, indicamos la opción “-T”:
createdb nuevadb -T plantilladb
Para indicarle el propietario a esta nueva base de datos, utilizamos la opción “-O” de este ejecutable:
createdb nuevadb -O usuario
Al igual que el comando, este ejecutable te permite indicar las propiedades de la nueva base de datos en una única línea:
createdb nuevadb -T plantilladb -O usuario -D mydirectorio