【发布时间】:2013-09-27 00:20:00
【问题描述】:
我正在构建我的应用程序,以便每个用户都有自己的数据库(以便于隔离,并最大限度地减少对分片的需求)。这意味着每个 Web 请求和所有后台脚本都需要根据发出请求的用户连接到不同的数据库,并将该连接用于所有函数调用。
我想我可以制作某种中间件,通过将其附加到 request 变量,将正确的连接传递给我的 Web 请求,但我不知道我应该如何确保由请求使用此连接。
【问题讨论】:
-
艰难的道路。这就是为什么没有人这样做。
-
我很难看到一个有效的用例(除了数据库黑客竞赛或其他什么)
-
单独使用多个数据库更容易实现多租户的假设是一种货物崇拜安全思想。
-
这是一个相关问题:stackoverflow.com/questions/13372001/… - 我最终使用的方法是为每个租户使用单独的 Postgres 架构(又名命名空间)。我很确定您可以配置 SQLALchemy 以维护与不同数据库的连接池并检查每个新请求的正确连接,但您确实需要测试应用程序如何与数百或数千个租户一起工作
标签: python database sqlalchemy pyramid