1 Фев


2020

DETAIL: 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.

Для постгреса версии 9.2 и выше можно остановить сессии так:

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'target_db'
AND pid <> pg_backend_pid();

Для версии 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. абсолютно честно и легитимно взято отсюда.

SQL
Sequelize