"use strict"; module.exports = { async up(queryInterface, Sequelize) { // Create index on (user_id, shown) to optimize markNotificationsShown queries // This prevents deadlocks by allowing fast lookups and reducing lock contention await queryInterface.sequelize.query(` DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind = 'i' AND c.relname = 'idx_notification_user_id_shown' AND n.nspname = 'falukant_log' ) THEN CREATE INDEX idx_notification_user_id_shown ON falukant_log.notification (user_id, shown); END IF; END$$; `); }, async down(queryInterface, Sequelize) { await queryInterface.sequelize.query(` DROP INDEX IF EXISTS falukant_log.idx_notification_user_id_shown; `); } };