diff --git a/src/migrations/20240111125100-automated-actions.js b/src/migrations/20240111125100-automated-actions.js new file mode 100644 index 0000000000..ab7519416d --- /dev/null +++ b/src/migrations/20240111125100-automated-actions.js @@ -0,0 +1,44 @@ +exports.up = function (db, cb) { + db.runSql( + ` + CREATE TABLE IF NOT EXISTS action_sets + ( + id SERIAL PRIMARY KEY NOT NULL, + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), + created_by_user_id INTEGER, + name varchar(255), + project VARCHAR(255) NOT NULL, + actor_id INTEGER, + source varchar(255), + source_id INTEGER, + payload JSONB DEFAULT '{}'::jsonb NOT NULL, + FOREIGN KEY (project) references projects(id) ON DELETE CASCADE + ); + + CREATE TABLE IF NOT EXISTS actions + ( + id SERIAL PRIMARY KEY NOT NULL, + created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), + created_by_user_id INTEGER, + action_set_id INTEGER references action_sets (id) ON DELETE CASCADE, + sort_order INTEGER, + action varchar(255) NOT NULL, + execution_params JSONB DEFAULT '{}'::jsonb NOT NULL + ); + + CREATE INDEX idx_action_sets_project ON action_sets (project); + `, + cb, + ); +}; + +exports.down = function (db, cb) { + db.runSql( + ` + DROP INDEX IF EXISTS idx_action_sets_project; + DROP TABLE IF EXISTS actions; + DROP TABLE IF EXISTS action_sets; + `, + cb, + ); +};