Убить Базу Билла
November 14, 2016

У нас каждую ночь в спец енвайроменте поднимаются все продакшены базы из бэкапов. Это приследует несколько целей: проверить, что в принципе из бэкапов можно восстановится, а так же аналитики делают некоторые ad hoc запросы без доступа на продакшен и привлечения программистов.
Для экономии места сохраняются две или три самых свежих базы, а остальные удаляются. Стандартный
dropdb
не удалит базу, если к ней остались коннекшены, в интернетах советуют рестартить постгрес
целиком, но это немного овер даже для тестовой базы. Решение, которое мне больше всего нравится, выглядит
так:
psql $db -c'SELECT pg_terminate_backend(pid) FROM pg_stat_activity
WHERE pid <> pg_backend_pid();'
dropdb $db
Вроде работает хорошо.
Tweet