On Thu, Nov 23, 2017 at 5:27 PM, Mike Bayer <mike...@zzzcomputing.com> wrote: > On Thu, Nov 23, 2017 at 8:44 AM, Антонио Антуан <a.ch....@gmail.com> wrote: >> >>> A Query can have lots of entities in it, and if you're doing sharding a >>> single result set can refer to any number of shard identifiers within >>> not just a single result set but within a single row; they might have >>> come from dozens of different databases at once >> >> In my case it is not possible: all entities in query can be gotten only from >> one particular shard. We have totally the same database structure for each >> shard. The difference is just data stored into database. No `shard_id` or >> any other key as part of primary key for any table. > > > so just to note, these aren't "shards", they're tenants. you have a > multi-tenant application, which is normally a really easy thing. but > you have a few side applications that want to "cheat" and use the > per-tenant object model across multiple tenants simultaneously in the > scope of a single Session. > >> If I want to make query >> for particular database I always want to retrieve data ONLY from that >> database. And even more than that: ONLY one database during one session >> transaction (or, in other words, one http-request to our app). > > if you have one "tenant id" per HTTP request, the standard HTTP > request pattern is one Session per request. There's no problem in > that case. You mentioned you have some non-flask applications that > want to communicate with multiple tenants in one Session. >
OP, can you describe in more detail why these applications need to talk to multiple tenant databases in a single session? Perhaps there might be an alternative way to approach that. Simon -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.