Este artículo explica cómo crear y eliminar (drop) rápidamente bases de datos PostgreSQL desde línea de comandos utilizando las herramientas createdb y dropdb.

Al momento de crear y eliminar bases de datos PostgreSQL, comúnmente se utilizan sentencias SQL desde el cliente de línea de comandos psql, o desde la herramienta pgAdmin. Sin embargo, existen también las herramientas de línea de comandos createdb y dropdb, provistas por el paquete postgresql. Esto permite, por ejemplo, crear bases de datos de forma automática desde scripts Bash.

createdb crea una base de datos con el nombre especificado como parámetro:

root@debian:~# createdb --help
createdb creates a PostgreSQL database.

Usage:
  createdb [OPTION]... [DBNAME] [DESCRIPTION]

Options:
  -D, --tablespace=TABLESPACE  default tablespace for the database
  -e, --echo                   show the commands being sent to the server
  -E, --encoding=ENCODING      encoding for the database
  -l, --locale=LOCALE          locale settings for the database
      --lc-collate=LOCALE      LC_COLLATE setting for the database
      --lc-ctype=LOCALE        LC_CTYPE setting for the database
  -O, --owner=OWNER            database user to own the new database
  -T, --template=TEMPLATE      template database to copy
  -V, --version                output version information, then exit
  -?, --help                   show this help, then exit

Connection options:
  -h, --host=HOSTNAME          database server host or socket directory
  -p, --port=PORT              database server port
  -U, --username=USERNAME      user name to connect as
  -w, --no-password            never prompt for password
  -W, --password               force password prompt
  --maintenance-db=DBNAME      alternate maintenance database

By default, a database with the same name as the current user is created.

Report bugs to <pgsql-bugs@postgresql.org>.

Es posible indicar el conjunto de caracteres (charset), collation (LC_COLLATE, indica el ordenamiento de strings), clasificación (LC_CTYPE, categorización de caracteres en mayúsculas, minúsculas, dígitos, etc.), y más. Si no se indica un nombre de base de datos, por defecto se crea una con el nombre del usuario actual.

Por ejemplo, si se desea crear una base de datos llamada "linuxito", propiedad del usuario "usr_linuxito" y codificada con UTF-8, ejecutar:

postgres@debian:~$ createdb -O usr_linuxito linuxito -E utf-8

drodb borra la base de datos indicada como parámetro:

root@debian:~# dropdb --help
dropdb removes a PostgreSQL database.

Usage:
  dropdb [OPTION]... DBNAME

Options:
  -e, --echo                show the commands being sent to the server
  -i, --interactive         prompt before deleting anything
  -V, --version             output version information, then exit
  --if-exists               don't report error if database doesn't exist
  -?, --help                show this help, then exit

Connection options:
  -h, --host=HOSTNAME       database server host or socket directory
  -p, --port=PORT           database server port
  -U, --username=USERNAME   user name to connect as
  -w, --no-password         never prompt for password
  -W, --password            force password prompt
  --maintenance-db=DBNAME   alternate maintenance database

Report bugs to <pgsql-bugs@postgresql.org>.

Por ejemplo, si se desea borrar la base de datos "linuxito", ejecutar:

postgres@debian:~$ dropdb linuxito

Referencias

PostgreSQL Documentation - createdb

PostgreSQL Documentation - dropdb


Tal vez pueda interesarte


Compartí este artículo