Files
tg_tinder_bot/migrations/1758156426793_add-processed-column-to-notifications.js

53 lines
1.5 KiB
JavaScript

/* eslint-disable camelcase */
exports.shorthands = undefined;
exports.up = pgm => {
// Проверяем существование таблицы scheduled_notifications
pgm.sql(`
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_name = 'scheduled_notifications'
) THEN
-- Проверяем, нет ли уже столбца processed
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'scheduled_notifications' AND column_name = 'processed'
) THEN
-- Добавляем столбец processed
ALTER TABLE scheduled_notifications ADD COLUMN processed BOOLEAN DEFAULT FALSE;
END IF;
ELSE
-- Создаем таблицу, если она не существует
CREATE TABLE scheduled_notifications (
id UUID PRIMARY KEY,
user_id UUID REFERENCES users(id),
type VARCHAR(50) NOT NULL,
data JSONB,
scheduled_at TIMESTAMP NOT NULL,
processed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT NOW()
);
END IF;
END
$$;
`);
};
exports.down = pgm => {
pgm.sql(`
DO $$
BEGIN
IF EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_name = 'scheduled_notifications' AND column_name = 'processed'
) THEN
ALTER TABLE scheduled_notifications DROP COLUMN processed;
END IF;
END
$$;
`);
};