Уведомления о первом подключение к 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();

Ответы (0 шт):