39 lines
745 B
Smarty
39 lines
745 B
Smarty
package db
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
|
|
"git.offline-twitter.com/offline-labs/gas-stack/pkg/db"
|
|
)
|
|
|
|
//go:embed schema.sql
|
|
var sql_schema string
|
|
|
|
// Database starts at version 0. First migration brings us to version 1
|
|
var MIGRATIONS = []string{}
|
|
|
|
type DB struct {
|
|
DB *sqlx.DB
|
|
}
|
|
|
|
func Create(path string) (*DB, error) {
|
|
conf := db.Init(&sql_schema, &MIGRATIONS)
|
|
dbHandle, err := conf.Create(path)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("creating db: %w", err)
|
|
}
|
|
return &DB{dbHandle}, nil
|
|
}
|
|
|
|
func Connect(path string) (*DB, error) {
|
|
conf := db.Init(&sql_schema, &MIGRATIONS)
|
|
dbHandle, err := conf.Connect(path)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("creating db: %w", err)
|
|
}
|
|
return &DB{dbHandle}, nil
|
|
}
|