database - GoLang Multi-Tenancy 应用程序数据库连接

标签 database postgresql go multi-tenant

我是 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/

相关文章:

database - 如果从 Delphi 应用程序创建的 .mdb( Access 数据库)已经存在,如何确定 IN APP?

SQL查询一对多关系中的最新记录

go - 了解无缓冲 channel 示例

mysql - 如何将数据库放到本地服务器上?

database - 如何在 Scala 中从实时数据源流式传输延迟数据

c# - Sql server 2005 Express Edition中的数据抓取技巧

sql - 条件顺序

python - 为什么我的模型的 "on_delete=models.CASCADE,"不生成级联外键约束?

go - 如何列出Go程序中所有正在运行的goroutines?

azure - 如何使用适用于 Golang v0.3.1 的 Azure sdk 让我的消费者监听 Azure 服务总线上的消息?