1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-23 00:22:19 +01:00
unleash.unleash/src/migrations/20240221082758-action-events.js
Nuno Góis 4a4d5388d9
chore: action_set_events db table migration (#6298)
https://linear.app/unleash/issue/2-1962/implement-new-action-events-logic

Adds a new `action_set_events` table for the new action events logic.

Even though observable events are technically immutable, we're storing
the observable event along with the action set event. This allows us to
avoid 1 join while allowing us to persist action set event information
after deleting observable events, if we wish to do so at a later stage.
2024-02-21 14:02:19 +00:00

32 lines
1019 B
JavaScript

exports.up = function (db, cb) {
db.runSql(
`
CREATE TABLE IF NOT EXISTS action_set_events
(
id SERIAL PRIMARY KEY NOT NULL,
action_set_id INTEGER NOT NULL,
observable_event_id INTEGER NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
state TEXT NOT NULL,
observable_event JSONB NOT NULL,
action_set JSONB NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_action_set_events_observable_event_id ON action_set_events(observable_event_id);
CREATE INDEX IF NOT EXISTS idx_action_set_events_action_set_id_state ON action_set_events(action_set_id, state);
`,
cb,
);
};
exports.down = function (db, cb) {
db.runSql(
`
DROP INDEX IF EXISTS idx_action_set_events_observable_event_id;
DROP INDEX IF EXISTS idx_action_set_events_action_set_id_state;
DROP TABLE IF EXISTS action_set_events;
`,
cb,
);
};