Eftersom du försöker köra dropDb
kommandot på databasen, som du har öppen anslutning till.
Enligt postgres dokumentation:
Detta är vettigt, för när du släpper hela databasen blir all öppen anslutning som refererar till den databasen ogiltig, så det rekommenderade tillvägagångssättet är att ansluta till en annan databas och köra det här kommandot igen.
Om du står inför en situation där en annan klient är ansluten till databasen och du verkligen vill släppa databasen, kan du med tvång koppla bort alla klienter från just den databasen.
Till exempel att med tvång koppla bort alla klienter från databasen mydb
:
Om PostgreSQL <9.2
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
Annas
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
Obs! Detta kommando kräver superanvändarbehörigheter.
Sedan kan du ansluta till en annan databas och köra dropDb
kommandot igen.