webcron/Database/create-database.sql

31 lines
1.1 KiB
MySQL
Raw Normal View History

2023-05-09 02:36:25 +00:00
CREATE TABLE IF NOT EXISTS log_levels (
2023-05-09 15:08:02 +00:00
log_level_id INTEGER PRIMARY KEY,
2023-05-09 02:36:25 +00:00
log_level_name VARCHAR(10) NOT NULL
);
2023-05-09 15:08:02 +00:00
INSERT INTO log_levels (log_level_id, log_level_name) VALUES
(0, 'INFO'),
(1, 'CRITICAL'),
(2, 'WARNING');
2023-05-09 02:36:25 +00:00
CREATE TABLE IF NOT EXISTS logs (
log_id INTEGER PRIMARY KEY AUTOINCREMENT,
log_level_id INTEGER NOT NULL DEFAULT 0,
log_source VARCHAR NOT NULL, -- This will be a unix path '/path/to/script'
log_message TEXT NOT NULl,
log_entry_timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
2023-05-09 15:08:02 +00:00
FOREIGN KEY (log_level_id) REFERENCES log_levels(log_level_id)
2023-05-09 02:36:25 +00:00
);
2023-05-09 15:08:02 +00:00
CREATE VIEW IF NOT EXISTS log_statistics AS
2023-05-09 02:36:25 +00:00
SELECT levels.log_level_name, COUNT(logs.log_id) FROM logs
JOIN log_levels levels ON log_levels.log_level_id = logs.log_level_id
2023-05-09 15:08:02 +00:00
GROUP BY logs.log_level_id;
2023-05-09 02:36:25 +00:00
2023-05-09 15:08:02 +00:00
CREATE VIEW IF NOT EXISTS log_statistics_last_7_days AS
2023-05-09 02:36:25 +00:00
SELECT log_levels.log_level_name, COUNT(logs.log_id) FROM logs
2023-05-09 15:08:02 +00:00
JOIN log_levels ON log_levels.log_level_id = logs.log_level_id
2023-05-09 02:36:25 +00:00
WHERE logs.log_entry_timestamp > DATETIME(CURRENT_TIMESTAMP, '-7 day')
2023-05-09 15:08:02 +00:00
GROUP BY logs.log_level_id;