Enable specifying database file path
This commit is contained in:
parent
4706de4413
commit
51a2cb3415
2 changed files with 28 additions and 10 deletions
30
db/db.go
30
db/db.go
|
@ -37,9 +37,27 @@ var db *kvs.DB
|
||||||
// Setup sets up the connection with the data layer
|
// Setup sets up the connection with the data layer
|
||||||
func Setup(opts *cnf.Options) (err error) {
|
func Setup(opts *cnf.Options) (err error) {
|
||||||
|
|
||||||
log.WithPrefix("db").Infof("Connecting to database at %s", opts.Store)
|
log.WithPrefix("db").Infof("Starting database at %s", opts.DB.Path)
|
||||||
|
|
||||||
db, err = kvs.New()
|
db, err = kvs.New(opts.DB.Path)
|
||||||
|
|
||||||
|
/*ticker := time.NewTicker(5 * time.Second)
|
||||||
|
quit := make(chan struct{})
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
t := time.Now()
|
||||||
|
n := fmt.Sprintf("%d-%02d-%02dT%02d-%02d-%02d-%d", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second(), t.Nanosecond())
|
||||||
|
p := fmt.Sprintf("dev/%s.backup.db", n)
|
||||||
|
db.Save(p)
|
||||||
|
case <-quit:
|
||||||
|
ticker.Stop()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()*/
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -48,7 +66,7 @@ func Setup(opts *cnf.Options) (err error) {
|
||||||
// Exit shuts down the connection with the data layer
|
// Exit shuts down the connection with the data layer
|
||||||
func Exit() {
|
func Exit() {
|
||||||
|
|
||||||
log.WithPrefix("db").Infof("Disconnecting from database")
|
log.WithPrefix("db").Infof("Gracefully shutting down database")
|
||||||
|
|
||||||
db.Close()
|
db.Close()
|
||||||
|
|
||||||
|
@ -84,6 +102,8 @@ func status(e error) interface{} {
|
||||||
switch e.(type) {
|
switch e.(type) {
|
||||||
default:
|
default:
|
||||||
return "OK"
|
return "OK"
|
||||||
|
case error:
|
||||||
|
return "ERR"
|
||||||
case *kvs.DBError:
|
case *kvs.DBError:
|
||||||
return "ERR_DB"
|
return "ERR_DB"
|
||||||
case *kvs.TXError:
|
case *kvs.TXError:
|
||||||
|
@ -96,9 +116,11 @@ func status(e error) interface{} {
|
||||||
}
|
}
|
||||||
|
|
||||||
func detail(e error) interface{} {
|
func detail(e error) interface{} {
|
||||||
switch e.(type) {
|
switch err := e.(type) {
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
|
case error:
|
||||||
|
return err.Error()
|
||||||
case *kvs.DBError:
|
case *kvs.DBError:
|
||||||
return "A database error occured"
|
return "A database error occured"
|
||||||
case *kvs.TXError:
|
case *kvs.TXError:
|
||||||
|
|
|
@ -15,8 +15,6 @@
|
||||||
package kvs
|
package kvs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/boltdb/bolt"
|
"github.com/boltdb/bolt"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,13 +23,11 @@ type DB struct {
|
||||||
db *bolt.DB
|
db *bolt.DB
|
||||||
}
|
}
|
||||||
|
|
||||||
func New() (db *DB, err error) {
|
func New(path string) (db *DB, err error) {
|
||||||
|
|
||||||
var bo *bolt.DB
|
var bo *bolt.DB
|
||||||
|
|
||||||
os.Remove("dev/bolt.db") // TODO remove this code!!!
|
bo, err = bolt.Open(path, 0666, nil)
|
||||||
|
|
||||||
bo, err = bolt.Open("dev/bolt.db", 0666, nil)
|
|
||||||
|
|
||||||
bo.Update(func(tx *bolt.Tx) error {
|
bo.Update(func(tx *bolt.Tx) error {
|
||||||
tx.CreateBucketIfNotExists(bucket)
|
tx.CreateBucketIfNotExists(bucket)
|
||||||
|
|
Loading…
Reference in a new issue