Borrar una base de datos en postgreSQL si esta activa



En postgreSQL si quieres borrar una base de datos y ésta esta activa no te va a dejar borrarla y te dará el error: ERROR: database "ecommerce" is being accessed by other users - DETAIL: There are 2 other sessions using the database, pero con una sencilla sentencia podemos desconectar la base de datos y borrarla ...

Suscríbete a nuestra newsletter

Sin spam. Solo contenido útil para profesionales de bases de datos.



Esto no será útil sobre todo cuando estamos en desarrollo manejando gran cantidad de bases de datos para pruebas y queremos borrarlas y obtenemos el error:

bbdd activa

Ejecutamos la siguiente select:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'ecommerce'
AND pid <> pg_backend_pid();


Sustituir el nombre de ecommerce por el nombre de vuestra base de datos. Y teneis que ejecutar esta sentencia tantas veces hasta que os salga 0 rows de resultado.

bbdd activa

Y ya podréis borrar la base de datos con un drop database.

Y esto es todo, feliz programming!!
Saludos
Alex.
/