Use file store by default (as opposed to memory store) (#1498)

* Use file store by default (as opposed to memory store)

* Default table for file store
This commit is contained in:
Janos Dobronszki 2020-04-07 15:19:45 +02:00 committed by Vasiliy Tolstov
parent c65fec6a6c
commit 090303e1af

17
file.go
View File

@ -17,6 +17,16 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
) )
var (
// DefaultDatabase is the namespace that the bbolt store
// will use if no namespace is provided.
DefaultDatabase = "micro"
// DefaultTable when none is specified
DefaultTable = "micro"
// DefaultDir is the default directory for bbolt files
DefaultDir = os.TempDir()
)
// NewStore returns a memory store // NewStore returns a memory store
func NewStore(opts ...store.Option) store.Store { func NewStore(opts ...store.Option) store.Store {
s := &fileStore{ s := &fileStore{
@ -36,18 +46,17 @@ type fileStore struct {
} }
func (m *fileStore) Init(opts ...store.Option) error { func (m *fileStore) Init(opts ...store.Option) error {
// m.store.Flush()
for _, o := range opts { for _, o := range opts {
o(&m.options) o(&m.options)
} }
if m.options.Database == "" { if m.options.Database == "" {
m.options.Database = "default" m.options.Database = DefaultDatabase
} }
if m.options.Table == "" { if m.options.Table == "" {
// bbolt requires bucketname to not be empty // bbolt requires bucketname to not be empty
m.options.Table = "default" m.options.Table = DefaultTable
} }
dir := filepath.Join(os.TempDir(), "micro") dir := filepath.Join(DefaultDir, "micro")
fname := m.options.Database + ".db" fname := m.options.Database + ".db"
_ = os.Mkdir(dir, 0700) _ = os.Mkdir(dir, 0700)
m.dir = dir m.dir = dir