2014-12-04 118 views
0

我想创建一个多租户应用程序,其中每个租户都有自己的域和数据库。django的多租户解决方案

域将是这样的:store1.saas.com,store2.saas.com ..和它们各自的数据库将商店1和商店2 ..

我已经决定把它命名为这样让依赖在url上,我可以用一些中间件来设置数据库。

我试过https://github.com/bernardopires/django-tenant-schemas这个,但它不会工作,因为它特别要求创建一个从TenantMixin继承的模型,然后在这样的设置中定义。 TENANT_MODEL = 'catalogue.Product'。我有多个TenantModels,并且这个方案不允许多个模型(它需要字符串,然后使用“。”分割并根据它进行分割)。

麻烦我是

  1. 如何创建子域
  2. 如何在本地测试它们,就像store1.127.0.0.1:8000不会工作?

回答

0

你可以尝试通过修改hosts文件/etc/hosts并把在那里模拟未来真实世界尽可能接近:

127.0.0.1 store1.saas.com 
127.0.0.1 store2.saas.com 
... etc 

然后你就可以浏览到本地主机通过store1.saas.com和等等。

+0

如何在生产环境中做同样的事情。我每次创建租户时都必须编辑/ etc/hosts吗? – 2014-12-04 11:05:31

+0

正常情况下,您需要DNS服务器为您解决问题。例如,你设置了DNS来解析* .saas.com到你的服务器,所以store1,store2等会自动去那里;就像www.saas.com,www.store1.saas.com等一样。 – 2014-12-04 11:28:02

+0

我必须这样做才能使它工作:store1.saas.com:8000 – 2014-12-04 11:47:21