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.<p>Then you don't have to remember to always pass the tenant_id to queries, and it allows you to upgrade tenants independently.<p>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.