なぜなら、dropDb
を実行しようとしているからです。 接続を開いているデータベースに対するコマンド。
postgresのドキュメントによると:
データベース全体を削除すると、そのデータベースを参照している開いている接続がすべて無効になるため、これは理にかなっています。したがって、別のデータベースに接続して、このコマンドを再度実行することをお勧めします。
別のクライアントがデータベースに接続されていて、本当にデータベースを削除したいという状況に直面している場合は、その特定のデータベースからすべてのクライアントを強制的に切断できます。
たとえば、データベースmydb
からすべてのクライアントを強制的に切断するには :
PostgreSQLの場合<9.2
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
その他
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
注: このコマンドにはスーパーユーザー権限が必要です。
次に、別のデータベースに接続して、dropDb
を実行できます。 もう一度コマンドします。