49 lines
840 B
Go
49 lines
840 B
Go
package db
|
|
|
|
import (
|
|
"common/config"
|
|
"common/db/etcd"
|
|
"common/db/mysql"
|
|
"common/db/redis"
|
|
"common/log"
|
|
)
|
|
|
|
// ModuleDB 数据库模块
|
|
type ModuleDB struct {
|
|
}
|
|
|
|
func (p *ModuleDB) Init(cfg *config.DBConfig) error {
|
|
// ETCD
|
|
if cfg.Etcd != nil {
|
|
if err := etcd.Init(cfg.Etcd); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// MYSQL
|
|
if cfg.MySQL != nil {
|
|
if err := mysql.Init(cfg.MySQL); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// REDIS
|
|
if cfg.Redis != nil {
|
|
if err := redis.Init(cfg.Redis); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (p *ModuleDB) Stop() error {
|
|
if err := etcd.Close(); err != nil {
|
|
log.Errorf("close etcd failed: %v", err)
|
|
}
|
|
if err := mysql.Close(); err != nil {
|
|
log.Errorf("close mysql failed: %v", err)
|
|
}
|
|
if err := redis.Close(); err != nil {
|
|
log.Errorf("close redis failed: %v", err)
|
|
}
|
|
return nil
|
|
}
|