Multi-tenancy implementation with Postgres: It's simpler than you imagine

  • Another option that at least should be mentioned I guess, is to share the database but have separate schemas per tenant, configuring the default schema on each user to be the respective tenant schema.

    Then you don't have to remember to always pass the tenant_id to queries, and it allows you to upgrade tenants independently.

    On the other hand you'll end up with a lot of tables, so probably not a good fit if you have very many light tenants.