package database import ( "path/filepath" "github.com/jmoiron/sqlx" _ "github.com/mattn/go-sqlite3" ) const schema = ` --- DROP TABLE IF EXISTS users; CREATE TABLE IF NOT EXISTS users ( id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL ); CREATE INDEX IF NOT EXISTS users_index ON users(name); ` type Database struct { datapath string db *sqlx.DB } func NewDatabase(datapath string) *Database { return &Database{ datapath: datapath, } } func (db *Database) InitDatabase() error { var err error dbPath := filepath.Join(db.datapath, "hamlogger.db") db.db, err = sqlx.Open("sqlite3", dbPath) if err != nil { return err } err = db.db.Ping() if err != nil { return err } _, err = db.db.Exec(schema) if err != nil { return err } return err }