zdravko/database/sqlite/migrations/2024-02-27-initial.sql

114 lines
3.3 KiB
MySQL
Raw Normal View History

2024-02-27 11:04:05 +00:00
-- +migrate Up
2024-02-27 14:43:20 +00:00
CREATE TABLE oauth2_states (
2024-02-29 22:42:56 +00:00
state TEXT NOT NULL,
expires_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
2024-02-27 14:55:35 +00:00
2024-02-27 11:04:05 +00:00
PRIMARY KEY (state)
2024-02-29 22:42:56 +00:00
) STRICT;
2024-02-27 11:04:05 +00:00
CREATE TABLE checks (
2024-02-29 22:42:56 +00:00
id TEXT NOT NULL,
name TEXT NOT NULL,
"group" TEXT NOT NULL,
2024-02-29 22:42:56 +00:00
schedule TEXT NOT NULL,
script TEXT NOT NULL,
2024-02-27 11:04:05 +00:00
visibility TEXT NOT NULL,
2024-02-29 22:42:56 +00:00
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
2024-02-27 11:04:05 +00:00
2024-02-29 22:42:56 +00:00
PRIMARY KEY (id),
CONSTRAINT unique_checks_name UNIQUE (name)
2024-02-29 22:42:56 +00:00
) STRICT;
-- +migrate StatementBegin
CREATE TRIGGER checks_updated_timestamp AFTER UPDATE ON checks BEGIN
UPDATE checks SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ') WHERE id = NEW.id;
END;
-- +migrate StatementEnd
2024-02-27 11:04:05 +00:00
CREATE TABLE worker_groups (
2024-02-29 22:42:56 +00:00
id TEXT NOT NULL,
name TEXT NOT NULL,
2024-02-27 11:04:05 +00:00
2024-02-29 22:42:56 +00:00
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
2024-02-27 11:04:05 +00:00
2024-02-29 22:42:56 +00:00
PRIMARY KEY (id),
2024-02-27 11:04:05 +00:00
CONSTRAINT unique_worker_groups_name UNIQUE (name)
2024-02-29 22:42:56 +00:00
) STRICT;
-- +migrate StatementBegin
CREATE TRIGGER worker_groups_updated_timestamp AFTER UPDATE ON worker_groups BEGIN
UPDATE worker_groups SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ') WHERE id = NEW.id;
END;
-- +migrate StatementEnd
2024-02-27 11:04:05 +00:00
CREATE TABLE check_worker_groups (
2024-02-29 22:42:56 +00:00
worker_group_id TEXT NOT NULL,
check_id TEXT NOT NULL,
2024-02-27 14:55:35 +00:00
PRIMARY KEY (worker_group_id,check_id),
CONSTRAINT fk_check_worker_groups_worker_group FOREIGN KEY (worker_group_id) REFERENCES worker_groups(id) ON DELETE CASCADE,
CONSTRAINT fk_check_worker_groups_check FOREIGN KEY (check_id) REFERENCES checks(id) ON DELETE CASCADE
2024-02-29 22:42:56 +00:00
) STRICT;
2024-02-27 11:04:05 +00:00
CREATE TABLE check_histories (
check_id TEXT NOT NULL,
2024-02-29 22:42:56 +00:00
worker_group_id TEXT NOT NULL,
status TEXT NOT NULL,
note TEXT NOT NULL,
2024-02-27 11:04:05 +00:00
2024-02-29 22:42:56 +00:00
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
2024-02-27 11:04:05 +00:00
PRIMARY KEY (check_id, worker_group_id, created_at),
CONSTRAINT fk_check_histories_check FOREIGN KEY (check_id) REFERENCES checks(id) ON DELETE CASCADE,
CONSTRAINT fk_check_histories_worker_group FOREIGN KEY (worker_group_id) REFERENCES worker_groups(id) ON DELETE CASCADE
) STRICT;
CREATE TABLE triggers (
id TEXT NOT NULL,
name TEXT NOT NULL,
script TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
PRIMARY KEY (id),
CONSTRAINT unique_triggers_name UNIQUE (name)
) STRICT;
-- +migrate StatementBegin
CREATE TRIGGER triggers_updated_timestamp AFTER UPDATE ON triggers BEGIN
UPDATE triggers SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ') WHERE id = NEW.id;
END;
-- +migrate StatementEnd
CREATE TABLE trigger_histories (
trigger_id TEXT NOT NULL,
status TEXT NOT NULL,
note TEXT NOT NULL,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ')),
PRIMARY KEY (trigger_id, created_at),
CONSTRAINT fk_trigger_histories_trigger FOREIGN KEY (trigger_id) REFERENCES triggers(id) ON DELETE CASCADE
2024-02-29 22:42:56 +00:00
) STRICT;
2024-02-27 11:04:05 +00:00
-- +migrate Down
2024-02-27 14:43:20 +00:00
DROP TABLE oauth2_states;
DROP TABLE check_worker_groups;
2024-02-27 11:04:05 +00:00
DROP TABLE worker_groups;
DROP TRIGGER worker_groups_updated_timestamp;
DROP TABLE check_histories;
DROP TABLE checks;
DROP TRIGGER checks_updated_timestamp;
DROP TABLE triggers;
DROP TABLE trigger_histories;
DROP TRIGGER triggers_updated_timestamp;