Omdat u dropDb
. probeert uit te voeren commando op de database, waarmee u een open verbinding hebt.
Volgens postgres-documentatie:
Dit is logisch, want als je de hele database laat vallen, worden alle open verbindingen die naar die database verwijzen ongeldig. De aanbevolen aanpak is dus om verbinding te maken met een andere database en deze opdracht opnieuw uit te voeren.
Als u geconfronteerd wordt met een situatie waarin een andere client is verbonden met de database en u de database echt wilt verwijderen, kunt u de client met geweld loskoppelen van die specifieke database.
Bijvoorbeeld om alle clients geforceerd los te koppelen van de database mydb
:
Als PostgreSQL <9.2
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
Anders
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
Opmerking: Voor deze opdracht zijn superuser-rechten vereist.
Vervolgens kunt u verbinding maken met een andere database en dropDb
. uitvoeren commando opnieuw.