package main import ( "database/sql" _ "github.com/mattn/go-sqlite3" "log" ) var db *sql.DB func initDB() { var err error db, err = sql.Open("sqlite3", "./database.db") if err != nil { log.Fatal(err) } createTables := ` CREATE TABLE IF NOT EXISTS hosts ( id INTEGER PRIMARY KEY AUTOINCREMENT, public_name TEXT NOT NULL, private_name TEXT NOT NULL, policy TEXT NOT NULL, endpoint TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS configuration ( name TEXT PRIMARY KEY, value TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS results ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, host_id INTEGER NOT NULL, success_percentage REAL NOT NULL, response_time REAL NOT NULL, FOREIGN KEY (host_id) REFERENCES hosts(id) ); INSERT OR IGNORE INTO configuration (name, value) VALUES ('interval_seconds', 60); INSERT OR IGNORE INTO configuration (name, value) VALUES ('retry_attempts', 3); INSERT OR IGNORE INTO configuration (name, value) VALUES ('timeout_seconds', 5); ` _, err = db.Exec(createTables) if err != nil { log.Fatal(err) } }