package maindb import ( "context" "path/filepath" "mbase/pkg/logger" "github.com/jmoiron/sqlx" _ "github.com/mattn/go-sqlite3" ) type Database struct { datapath string db *sqlx.DB log *logger.Logger } func NewDatabase(datapath string) (*Database, error) { var err error db := &Database{ datapath: datapath, } db.log = logger.NewLogger("maindb") return db, err } func (db *Database) OpenDatabase() error { var err error dbPath := filepath.Join(db.datapath, "main.db") db.db, err = sqlx.Open("sqlite3", dbPath) if err != nil { return err } err = db.db.Ping() if err != nil { return err } return err } func (db *Database) InitDatabase() error { var err error _, err = db.db.Exec(schema) if err != nil { return err } return err } func (db *Database) CleanDatabase(ctx context.Context) error { var err error request := ` DELETE FROM account; DELETE FROM grant; ` _, err = db.db.Exec(request) if err != nil { return err } return err }