cabinet/db/db.go

40 lines
646 B
Go

package db
import "github.com/jmoiron/sqlx"
type Database struct {
*sqlx.DB
}
func New(path string) (*Database, error) {
d, err := sqlx.Open("sqlite3", path)
if err != nil {
return nil, err
}
return &Database{d}, nil
}
func (d *Database) MakeDB() error {
q := `create table if not exists tags (
id integer primary key,
tag text
)`
if _, err := d.Exec(q); err != nil {
return err
}
q = `select count(*) from tags`
var count int
if err := d.Get(&count, q); err != nil {
return err
}
if count == 0 {
return d.populate()
}
return nil
}
func (d *Database) populate() error {
tx := d.MustBegin()
return tx.Commit()
}