Added notification and alert expiry migration.

This commit is contained in:
DebaucheryLibrarian
2026-07-13 17:30:23 +02:00
parent 45acc9bf3c
commit fe74e83282

View File

@@ -1,4 +1,14 @@
exports.up = async function(knex) {
await knex.schema.alterTable('notifications', (table) => {
table.datetime('seen_at');
});
await knex.schema.alterTable('alerts', (table) => {
table.boolean('is_expired')
.notNullable()
.defaultTo(false);
});
await knex.schema.createMaterializedView('alerts_users_scenes', (view) => {
view.columns('user_id', 'scene_id', 'alert_ids');
@@ -19,11 +29,20 @@ exports.up = async function(knex) {
.on('related_scenes.alert_id', 'alerts_scenes.alert_id')
.on('related_scenes.scene_id', '!=', 'alerts_scenes.scene_id');
})
.where('alerts.is_expired', false)
.groupBy(['user_id', 'alerts_scenes.scene_id', 'is_only']),
);
});
};
exports.down = async function(knex) {
await knex.schema.dropView('alerts_users_scenes');
await knex.schema.dropMaterializedView('alerts_users_scenes');
await knex.schema.alterTable('alerts', (table) => {
table.dropColumn('is_expired');
});
await knex.schema.alterTable('notifications', (table) => {
table.dropColumn('seen_at');
});
};