我知道这个问题已经被问过很多次了,但我没有为我的情况找到一个好的答案。我正在使用 SQLC 生成用于查询数据库的方法。使用开始时初始化的一个连接时,一切正常。现在,我需要在多租户环境中进行设置,其中每个租户将具有单独的数据库。现在,我想从连接映射(映射[字符串]*sql。DB) 将租户与数据库连接连接起来。我的问题是关于在运行时覆盖/选择连接。使用一个连接,存储库被初始化为:
type Repository interface {
GetCustomerById(ctx context.Context, id int64) (Customer, error)
ListCustomers(ctx context.Context) ([]Customer, error)
}
type repoSvc struct {
*Queries
db *sql.DB
}
func NewRepository(dbconn *sql.DB) Repository {
return &repoSvc{
Queries: New(dbconn),
db: dbconn,
}
}
customerRepo := customerRepo.NewRepository(conn)
GetCustomerById 是 SQLC 生成的方法,连接是数据库连接
如何根据参数(从 Cookie 或上下文)建立连接?
冉冉说
相关分类