sql >> Base de Datos >  >> RDS >> PostgreSQL

Error de la base de datos de eliminación de Postgres:pq:no se puede eliminar la base de datos actualmente abierta

Porque está intentando ejecutar dropDb comando en la base de datos, a la que tiene una conexión abierta.

Según la documentación de postgres:

Esto tiene sentido, porque cuando elimina toda la base de datos, todas las conexiones abiertas que hacen referencia a esa base de datos se vuelven inválidas, por lo que el enfoque recomendado es conectarse a una base de datos diferente y ejecutar este comando nuevamente.

Si se enfrenta a una situación en la que un cliente diferente está conectado a la base de datos y realmente desea eliminar la base de datos, puede desconectar a la fuerza a todos los clientes de esa base de datos en particular.

Por ejemplo, para desconectar a la fuerza todos los clientes de la base de datos mydb :

Si PostgreSQL <9.2

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';

Más

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

Nota: Este comando requiere privilegios de superusuario.

Luego, puede conectarse a una base de datos diferente y ejecutar dropDb comando de nuevo.