55006: object_in_use
PostgreSQL의미
대상 객체(보통 데이터베이스)를 다른 세션이 사용 중이어서 작업을 수행할 수 없다. 예를 들어 활성 연결이 있는 데이터베이스는 삭제할 수 없다.
원인
DROP DATABASE 시 데이터베이스에 열린 연결이 있음. 사용 중인 객체에 배타적 락이 필요한 작업. 다른 세션이 객체를 보유.
해결 방법
대상 데이터베이스에 대한 열린 연결을 찾아 종료한다: SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'db_name' AND pid <> pg_backend_pid(); (필요하면) 새 연결을 차단한다. PostgreSQL 13+에서는 연결을 강제로 닫으면서 삭제한다: DROP DATABASE db_name WITH (FORCE);