使用MongoDB的Django多数据库多租户

时间:2015-05-08 13:57:15

标签: python django mongodb multi-tenant database

是否有软件为Django提供多DB多租户支持并与MongoDB一起使用?

我认为我只需要在数据库级别进行多租户,可能需要在架构级别,而不是在应用程序级别。

我有一个非常复杂的用户模型。一些用户可以查看其他用户输入的某些数据。用户通常属于组织。组织可以按层次结构嵌套,并且在组织内的用户如何配置应用程序方面可能存在相似之处(例如,组织内的所有用户将填写相同的表单,除非对单个用户进行覆盖)。有时,用户提交的某些数据可以由其组织外部的用户查看,甚至可以在其组织内部的层次结构之外查看。使用该应用程序的组织可能是竞争对手,我们处理的数据非常敏感,因此需要非常安全。它也需要很快发展。

我正在考虑为每个用户提供他们自己的数据库,然后让他们拥有共享数据库或一个具有多个模式的共享数据库,以便存储组织内用户之间共享的配置。

1 个答案:

答案 0 :(得分:1)

MongoDB上的多租户是完全可行的,我们在onliquid.com生产中使用它。

我不知道是否有任何lib,插件或特定软件可以为您完成,但它可以通过不那么多努力来实现。如果你想深入研究它,我建议你特别注意你选择数据库进行读写操作时所使用的驱动程序的行为方式。另外,请查看smallfilesdirectoryperdb等MongoDB配置选项,以便更好地管理差异并避免出现问题。

前段时间我使用Mongoid为Ruby on Rails编写了一个blog post,大多数细节适用于所有Web框架,并且特定于MongoDB的内部工作。