Hi Vincen, Thanks a lot! I will check for postgresql multi-tenancy.
Best regards, Luis Aguirre 2014-05-23 3:12 GMT-03:00 Vincent Catalano <[email protected]>: > Luis, > > This solution seems like it would work fine. There are many different ways > you can handle database multi-tenancy and it really all depends on how you > want to partition your client data. > > Recently, I had a project that required a multi-tenant configuration. I > decided to use Postgres' Schema functionality ( > http://www.postgresql.org/docs/9.3/static/sql-createschema.html) for > handling multiple tenants that required the same table structure. I'm not > sure if this is an option for you at this point in your project but I > recommend you explore some of the multi-tenancy options your database may > provide. > > -Vincent > > > > > On Wed, May 21, 2014 at 8:05 AM, Luis Aguirre <[email protected]>wrote: > >> Hi guys, >> >> I'm developing a multi-tenant application. The model is pretty simple: >> >> * Each user as a tenant id >> * Some objects has a tenant_id and some doesn't, if the object has a >> tenant_id, I have to filter by this colum >> >> I don't want to have a >> DBSession.query(SomeObject).filter(filter_by_tenant_id).filter(some_other_filter).all() >> >> So I had a method to DBSession called tdb that do all the work and return >> a clear Query Object, so I did the following: >> >> #in application __init__ >> config.add_subscriber(tenantdb_on_new_request, events.NewRequest) >> >> #In models >> DBSession = >> scoped_session(sessionmaker(extension=ZopeTransactionExtension())) >> >> >> def tenantdb_on_new_request(event): >> >> def tenant_db(*entities, **kwargs): >> q = DBSession.query(*entities, **kwargs) >> for e in entities: >> if hasattr(e, 'tenant_id'): >> q = q.filter(e.tenant_id == event.request.user.tenant) >> return q >> >> DBSession.tdb = tenant_db >> >> It's works fine, but it's ok? May I have problems when many requests came >> in production? Some idea to do it in other way? >> >> Thanks in advance! >> >> Best regards, >> >> Luis Aguirre >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pylons-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/pylons-discuss. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Vincent Catalano > Software Engineer and Web Developer, > (520).603.8944 > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/pylons-discuss. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pylons-discuss. For more options, visit https://groups.google.com/d/optout.
