Уведомления о первом подключение к DB postgres
Необходимо после старта базы отследить первое подключение пользователя/приложения к базе, отправить уведомление к примеру на почту. Суть в том что это должно выполнятся строго один раз и строго после старта базы.
пытался сделать через расширение first_connect, но оно только записывает в таблицу всех пользователей которые впервые подключились, тем самым увеличивает таблицу. По сути там должна быть одна строка, которая в идеале после отправки уведомления автоматически очищается и перезаписывается только после нового стартапа.
SQL
CREATE TABLE connection_log (
id SERIAL PRIMARY KEY,
connected_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Шаг 2: Создание функции для регистрации подключения
функция, которая будет проверять, было ли уже зарегистрировано первое подключение. Если нет, то она добавит запись и отправит уведомление.
SQL
CREATE OR REPLACE FUNCTION log_first_connection()
RETURNS void AS $$
BEGIN
-- Проверяем, есть ли уже запись о первом подключении
IF NOT EXISTS (SELECT 1 FROM connection_log) THEN
-- Вставляем запись о первом подключении
INSERT INTO connection_log (connected_at) VALUES (CURRENT_TIMESTAMP);
-- Отправляем уведомление
PERFORM pg_notify('first_connection', 'Первое подключение к базе данных произошло.');
END IF;
END;
$$ LANGUAGE plpgsql;
Шаг 3: Создание триггера для отслеживания подключений
SQL
CREATE EVENT TRIGGER connection_trigger
ON sql_drop
EXECUTE FUNCTION log_first_connection();