我是 golang 的新手,目前正在尝试构建一个多租户应用程序。在我的应用程序中,每个租户都有自己的数据库。我的要求是我需要为每个租户请求切换数据库连接,如何在 golang 中完成。我更喜欢这个项目的 postgresql 。
我可以拥有一个与租户建立数据库连接的地图,但不确定这是不是一个好习惯。
非常感谢您的帮助和建议
答案 0 :(得分:0)
我已经在Rails中处理过类似的要求。也许您也可以在go-lang中使用相同的方法。
我将有一个主数据库,其中仅包含租户信息。像租户名称和db_name。
我有一个机架中间件,它将根据子域切换数据库(我正在使用子域来标识租户)。
例如,您的主数据库可以具有表tenants
,并且示例记录可能看起来像这样:
{
id: 1,
name: 'XYZ',
db_name: 'xyz'
}
并且当您的应用程序收到带有子域xyz
的请求时,您的中间件应切换到xyz
DB。