domingo, 15 de enero de 2012

Eliminar todas las tablas de una base de datos PostgreSQL

Procedimiento:

1- Utilizamos el siguiente comando para generar automáticamente un script SQL con todos los DROPs:
~$ psql -h <hostname> -t -d <database> -U <username> -c "SELECT
'DROP TABLE ' || n.nspname || '.' || c.relname || ' CASCADE;'
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1;" > droptables
Donde:
  • <hostname> = Nombre de la máquina donde reside la base de datos
  • <database> = Nombre de la base de datos
  • <username> = Nombre de usuario
2- Ejecutamos el script generado en el paso anterior:
~$ psql -h <hostname> -d <database> -U <username> -f droptables



No hay comentarios:

Publicar un comentario