There is 1 other session using the database.
31.01.2020
Иногда при дропе базы, в postgres есть запущенные сессии, конечно, можно остановить приложения, которые стучатся в базу, однако, не всегда..
Проблема
Иногда при дропе базы, в postgres есть запущенные сессии, конечно, можно остановить приложения, которые стучатся в базу, однако, не всегда есть возможность или нам просто лень делать это, и мы получаем ошибку вида There is 1 other session using the database.
postgres=# DROP DATABASE target_db;
ERROR: database "target_db" is being accessed by other users
DETAIL: There is 1 other session using the database.
Решение
Для Postgresql версии 9.2 и выше можно использовать следующий sql запрос:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'target_db'
AND pid <> pg_backend_pid();
Для Postgresql версии 9.1 и ниже запрос немного изменится:
SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'target_db'
AND procpid <> pg_backend_pid();
После чего успешно дропаем нашу базу данных
P.s. абсолютно честно и легитимно взято отсюда.