开发者

Handle multiple customers with their own database in Django

I have to develop a Django webapp which can handle several customers with their own databases.

Each customer should manage their different users and groups, with associated permissions and a set of Django's apps.

I need separate databases for security and scaling reasons. Moreover, each base size may exceed 200MB. Besides these dedicated databases, I need a "common" database to store data common to every customer (and must not be replicated to every customer database).

The fact is that I don't know how to handle the multiple customers databases (and keeping Django's auth capabilities for each customer independently : user/group/perms).

I found django-constance (https://github.com/comoga/django-constance) which allow to change settings on the fly, and I have in mind to auth with a customer identifier + username ; this way I may load the right DB with the customer identifier and auth on that one with the username.

Well, this solution does not seem to me开发者_开发技巧 so good, and I would appreciate if anybody has a better idea or if someone has already encountered this problem and found a workaround...

I have not found similar problems on the net, and that's quite annoying because that does not seem to me as unusual...

Thanks a lot for the time spent on this.


Keep It Simple -- leverage what Apache (or nginx or whatever) offers you.

  1. Use mod_wsgi.

  2. Use Apache (or nginx or whatever) to split the customer's URL's from each other

    /cust1/path/to/resource
    /cust2/path/to/resource
    

    If you use Apache (or nginx or whatever) to split these things up, then each top-level path element can direct the request to a specific mod_wsgi instance

  3. Each mod_wsgi instance has it's own settings.py that has the customer's specific database credentials.

  4. Each customer settings.py should probably start with from master_settings import * so that you can have a "for all customers" settings which is extended by each specific customer.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜