Files
hamlogger/internal/database/database.go
Олег Бородин ada2a49a64 initial import of sources
2024-06-18 10:15:22 +02:00

49 lines
835 B
Go

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
}