add comments

This commit is contained in:
MaysWind
2020-12-25 23:49:51 +08:00
parent becfb0bed5
commit 7d9b3290d8
4 changed files with 25 additions and 0 deletions
+6
View File
@@ -6,22 +6,27 @@ import (
"github.com/mayswind/lab/pkg/errs"
)
// DataStore represents a data storage containing a series of database shards
type DataStore struct {
databases []*Database
}
// Choose returns a database instance by sharding key
func (s *DataStore) Choose(key int64) *Database {
return s.databases[0]
}
// Query returns a new database session in a specific database by sharding key
func (s *DataStore) Query(key int64) *xorm.Session {
return s.Choose(key).NewSession()
}
// DoTransaction runs a new database transaction in a specific database by sharding key
func (s *DataStore) DoTransaction(key int64, fn func(sess *xorm.Session) error) (err error) {
return s.Choose(key).DoTransaction(fn)
}
// SyncStructs updates database structs by database models
func (s *DataStore) SyncStructs(beans ...interface{}) error {
var err error
@@ -36,6 +41,7 @@ func (s *DataStore) SyncStructs(beans ...interface{}) error {
return err
}
// NewDataStore returns a new data storage by a series of database
func NewDataStore(databases ...*Database) (*DataStore, error) {
if len(databases) < 1 {
return nil, errs.ErrDatabaseIsNull