2014-12-04 120 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