我是 golang 的新手,目前正在尝试构建 Multi-Tenancy 应用程序。在我的应用程序中,每个租户都有自己的数据库。我的要求是我需要根据租户请求切换数据库连接,这如何在 golang 中完成。对于这个项目,我更喜欢 postgresql。
我可以将数据库连接映射到租户,但不确定这是否是一种好的做法。
非常感谢您的帮助和建议
最佳答案
我在 Rails 中处理过类似的需求。也许您也可以在 go-lang 中使用相同的方法。
我将有一个主数据库,它只保存租户信息。像租户名称和 db_name。
我有一个机架中间件,它会根据子域切换数据库(我使用子域来识别租户)。
例如,您的主数据库可以有表 tenants
,示例记录可能如下所示:
{
编号:1,
名称:'XYZ',
db_name: 'xyz'
}
当您的应用程序收到带有子域 xyz
的请求时,您的中间件应切换到 xyz
数据库。
关于database - GoLang Multi-Tenancy 应用程序数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446532/