lamassu-server/packages/server/migrations/1752141860742-compliance-triggers-sets.js
2025-12-31 19:04:13 +01:00

48 lines
1.1 KiB
JavaScript

const uuid = require('uuid')
const db = require('./db')
const CREATE_TABLE = `
CREATE TABLE compliance_trigger_sets (
id UUID PRIMARY KEY,
name TEXT NOT NULL UNIQUE
)
`
const INSERT_DEFAULT =
"INSERT INTO compliance_trigger_sets (id, name) VALUES ($1, 'Default')"
const ADD_SET_COLUMN = `
ALTER TABLE compliance_triggers
ADD COLUMN compliance_trigger_set_id UUID
REFERENCES compliance_trigger_sets (id)
ON DELETE CASCADE
`
const UPDATE_TRIGGERS =
'UPDATE compliance_triggers SET compliance_trigger_set_id = $1'
const MAKE_SET_COLUMN_NOT_NULL = `
ALTER TABLE compliance_triggers
ALTER COLUMN compliance_trigger_set_id
SET NOT NULL
`
exports.up = next => {
const defaultUUID = uuid.v4()
return db
.tx(async tx => {
await tx.none(CREATE_TABLE)
await tx.none(INSERT_DEFAULT, [defaultUUID])
await tx.none(ADD_SET_COLUMN)
await tx.none(UPDATE_TRIGGERS, [defaultUUID])
await tx.none(MAKE_SET_COLUMN_NOT_NULL)
})
.then(() => next())
.catch(err => {
console.log(err)
next(err)
})
}
exports.down = next => next()