diff --git a/Database/create-database.sql b/Database/create-database.sql new file mode 100644 index 0000000..dc69a61 --- /dev/null +++ b/Database/create-database.sql @@ -0,0 +1,27 @@ +CREATE TABLE IF NOT EXISTS log_levels ( + log_level_id INTEGER PRIMARY KEY AUTOINCREMENT, + log_level_name VARCHAR(10) NOT NULL +); + +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, + + FOREIGN KEY (log_level_id) REFERENCES log +); + + +CREATE VIEW log_statistics AS + 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 + GROUP BY log_level_id; + +CREATE VIEW log_statistics_last_7_days AS + SELECT log_levels.log_level_name, COUNT(logs.log_id) FROM logs + JOIN log_levels ON log_levels.log_level_id = (logs.log_level_id + 1) + WHERE logs.log_entry_timestamp > DATETIME(CURRENT_TIMESTAMP, '-7 day') + GROUP BY logs.log_level_id; +