mirror of
https://github.com/TwiN/gatus.git
synced 2025-01-20 12:58:36 +01:00
70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
|
package sql
|
||
|
|
||
|
func (s *Store) createSQLiteSchema() error {
|
||
|
_, err := s.db.Exec(`
|
||
|
CREATE TABLE IF NOT EXISTS service (
|
||
|
service_id INTEGER PRIMARY KEY,
|
||
|
service_key TEXT UNIQUE,
|
||
|
service_name TEXT,
|
||
|
service_group TEXT,
|
||
|
UNIQUE(service_name, service_group)
|
||
|
)
|
||
|
`)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_, err = s.db.Exec(`
|
||
|
CREATE TABLE IF NOT EXISTS service_event (
|
||
|
service_event_id INTEGER PRIMARY KEY,
|
||
|
service_id INTEGER REFERENCES service(service_id) ON DELETE CASCADE,
|
||
|
event_type TEXT,
|
||
|
event_timestamp TIMESTAMP
|
||
|
)
|
||
|
`)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_, err = s.db.Exec(`
|
||
|
CREATE TABLE IF NOT EXISTS service_result (
|
||
|
service_result_id INTEGER PRIMARY KEY,
|
||
|
service_id INTEGER REFERENCES service(service_id) ON DELETE CASCADE,
|
||
|
success INTEGER,
|
||
|
errors TEXT,
|
||
|
connected INTEGER,
|
||
|
status INTEGER,
|
||
|
dns_rcode TEXT,
|
||
|
certificate_expiration INTEGER,
|
||
|
hostname TEXT,
|
||
|
ip TEXT,
|
||
|
duration INTEGER,
|
||
|
timestamp TIMESTAMP
|
||
|
)
|
||
|
`)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_, err = s.db.Exec(`
|
||
|
CREATE TABLE IF NOT EXISTS service_result_condition (
|
||
|
service_result_condition_id INTEGER PRIMARY KEY,
|
||
|
service_result_id INTEGER REFERENCES service_result(service_result_id) ON DELETE CASCADE,
|
||
|
condition TEXT,
|
||
|
success INTEGER
|
||
|
)
|
||
|
`)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_, err = s.db.Exec(`
|
||
|
CREATE TABLE IF NOT EXISTS service_uptime (
|
||
|
service_uptime_id INTEGER PRIMARY KEY,
|
||
|
service_id INTEGER REFERENCES service(service_id) ON DELETE CASCADE,
|
||
|
hour_unix_timestamp INTEGER,
|
||
|
total_executions INTEGER,
|
||
|
successful_executions INTEGER,
|
||
|
total_response_time INTEGER,
|
||
|
UNIQUE(service_id, hour_unix_timestamp)
|
||
|
)
|
||
|
`)
|
||
|
return err
|
||
|
}
|