database/abstract/wrapper_client.go

36 lines
1.3 KiB
Go
Raw Permalink Normal View History

// Package abstract ...
//
// Description : abstract ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2024-08-20 17:26
package abstract
import (
2024-08-20 17:56:43 +08:00
"context"
"git.zhangdeman.cn/zhangdeman/database/define"
"go.uber.org/zap"
2024-08-20 17:56:43 +08:00
"gorm.io/gorm"
)
2024-08-20 18:14:57 +08:00
// IWrapperClient 包装的客户端, 包装 IWrapperDatabaseClient
//
// 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
2024-08-20 17:56:43 +08:00
// GetDBClient 基于数据库标识获取数据库实例
2024-08-20 18:14:57 +08:00
GetDBClient(dbFlag string) (IWrapperDatabaseClient, error)
2024-08-20 17:56:43 +08:00
// GetMasterClient 获取主库连接
GetMasterClient(ctx context.Context, dbFlag string) (*gorm.DB, error)
// GetSlaveClient 获取从库连接
GetSlaveClient(ctx context.Context, dbFlag string) (*gorm.DB, error)
}