【发布时间】:2016-06-08 16:19:45
【问题描述】:
我从 django-tenant-schemas 开始,它创建了用于分离租户的 postgresql 模式。我是 Django 的新手。谁能解释一下
- 多应用项目应如何适应多租户?
- django-tenant-schemas 创建特定于租户的用户。如何让用户分布在多个租户中。
【问题讨论】:
-
您所说的“多应用”究竟是什么意思?你的意思是可以有几种“类型”的租户,不仅有不同的数据库,而且有不同的模式和逻辑?或者您的租户应该有多个应用程序?后来支持 fy django-tenant-schemas 开箱即用。不支持租户的不同“类型”,但您可以通过在“TENANT_MODEL”的某些字段上使用条件来伪造它(对于非“当前”租户应用程序的应用程序返回 404。还有许多其他可能性,但您最好指定做什么你实际上是指“多应用”
-
我的意思是两个应用程序。例如投票应用和任务应用。所以我只需要在共享应用程序中指定它们?
-
如果您的每个租户都应该有 2 个不同应用程序的 URL,那么这些应用程序应该在
TENANT_APPS中使用(而不是共享应用程序!)。 docs 的示例为每个租户提供 2 个自定义应用程序:myapp.hotels和myapp.houses。共享应用程序用于您可能“出售”您的服务的“公共”站点。请注意,您还应该将different urlconf 用于“公共”租户和“应用程序租户” -
感谢您的帮助,如何让用户分布在租户之间?
-
有几种解决方案: 1. 构建您的应用程序,使其不依赖于用户的真实 FK,并使用 API 获取用户信息或多个数据库 (
User.object.using('user_db)...'docs.djangoproject.com/en/1.9/topics/db/multi-db/…)。 2.同步用户表(涉及到很多问题,但是如果您使用的是依赖于用户关系的第三方django应用程序,那么这是唯一的方法)
标签: django postgresql multi-tenant