|
| 1 | +-- +goose Up |
| 2 | +CREATE TABLE IF NOT EXISTS pulse.check_executions |
| 3 | +( |
| 4 | + id BIGSERIAL PRIMARY KEY, |
| 5 | + execution_id uuid NOT NULL, |
| 6 | + check_id TEXT NOT NULL, |
| 7 | + service_id TEXT NOT NULL, |
| 8 | + status pulse.check_status DEFAULT 'success' NOT NULL, |
| 9 | + check_type pulse.check_type NOT NULL, |
| 10 | + started_at TIMESTAMPTZ NOT NULL, |
| 11 | + finished_at TIMESTAMPTZ NOT NULL, |
| 12 | + duration INTERVAL NOT NULL, |
| 13 | + attempts_total INTEGER DEFAULT 1 NOT NULL, |
| 14 | + error_kind pulse.check_error_kind DEFAULT NULL, |
| 15 | + error_message TEXT DEFAULT NULL, |
| 16 | + details JSONB DEFAULT NULL, |
| 17 | + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP NOT NULL, |
| 18 | + |
| 19 | + CONSTRAINT finished_check CHECK (finished_at >= started_at), |
| 20 | + CONSTRAINT attempts_check CHECK (attempts_total >= 1) |
| 21 | +); |
| 22 | + |
| 23 | +CREATE UNIQUE INDEX IF NOT EXISTS check_executions_execution_id_uidx ON pulse.check_executions (execution_id); |
| 24 | +CREATE INDEX IF NOT EXISTS check_executions_check_id_idx ON pulse.check_executions (check_id); |
| 25 | +CREATE INDEX IF NOT EXISTS check_executions_service_id_idx ON pulse.check_executions (service_id); |
| 26 | + |
| 27 | +CREATE TRIGGER check_executions_prohibit_update |
| 28 | + BEFORE UPDATE |
| 29 | + ON pulse.check_executions |
| 30 | + FOR EACH ROW |
| 31 | +EXECUTE FUNCTION pulse.update_prohibited(); |
| 32 | + |
| 33 | +CREATE TRIGGER check_executions_prohibit_delete |
| 34 | + BEFORE DELETE |
| 35 | + ON pulse.check_executions |
| 36 | + FOR EACH ROW |
| 37 | +EXECUTE FUNCTION pulse.delete_prohibited(); |
| 38 | + |
| 39 | +-- +goose Down |
| 40 | +DROP TRIGGER IF EXISTS check_executions_prohibit_delete ON pulse.check_executions; |
| 41 | +DROP TRIGGER IF EXISTS check_executions_prohibit_update ON pulse.check_executions; |
| 42 | +DROP INDEX IF EXISTS check_executions_service_id_idx; |
| 43 | +DROP INDEX IF EXISTS check_executions_check_id_idx; |
| 44 | +DROP INDEX IF EXISTS check_executions_execution_id_uidx; |
| 45 | +DROP TABLE IF EXISTS pulse.check_executions; |
0 commit comments