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