The majority (AFAIK) of multi-tenant projects go with soft/shared multi-tenancy architecture where a “tenant_id” would be added to the models.
The problem with this approach is third-party apps where the developer doesn’t have access to their models.
Except for a few Django packages where the models are implemented with swapping (auth.User, django-comments, django-oauth-toolkit, …), most of other third applications don’t have such configuration.
In many cases, it will render the third-party apps useless, some notable workarounds are:
- Fork/vendor the upstream project and add the tenant-based changes.
- Ask the developers to provide swapping/abstract solutions into their project.
Each of the above has their own problems as well.
I wanted to ask, how else do you handle this problem?