database/abstract/wrapper_client.go

36 lines
1.2 KiB
Go

// Package abstract ...
//
// Description : abstract ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2024-08-20 17:26
package abstract
import (
"context"
"git.zhangdeman.cn/zhangdeman/database/define"
"go.uber.org/zap"
"gorm.io/gorm"
)
// IWrapperClient 包装的客户端
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:26 2024/8/20
type IWrapperClient interface {
// AddWithConfigFile 通过配置文件增加数据库实例
AddWithConfigFile(cfgFilePath string, logInstance *zap.Logger, extraFieldList []string) error
// AddWithConfig 通过具体的配置增加数据库实例
AddWithConfig(flag string, logInstance *zap.Logger, databaseConfig *define.Database, extraFieldList []string) error
// BatchAddWithConfigDir 通过具体的配置列表增加数据库实例
BatchAddWithConfigDir(cfgDir string, logInstance *zap.Logger, extraFieldList []string) error
// GetDBClient 基于数据库标识获取数据库实例
GetDBClient(dbFlag string) (*define.DBClient, error)
// GetMasterClient 获取主库连接
GetMasterClient(ctx context.Context, dbFlag string) (*gorm.DB, error)
// GetSlaveClient 获取从库连接
GetSlaveClient(ctx context.Context, dbFlag string) (*gorm.DB, error)
}