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 }