we will be supporting this as a connection execution option in
http://www.sqlalchemy.org/trac/ticket/2685, so the usage will be like:
conn = connection.execution_options(default_schema=someschema)
s = Session(bind=conn)
< work with Session or Connection >
for now the easiest approach is to set the search path per
connection/session/whatever:
s = Session()
s.execute("set search path to my_schema, public")
if you bind your Session to a Connection as above, it will be used repeatedly
for new transactions so the commit() won't be a problem.
Another approach, if you're Session centric, is to set it in the after_begin
Session event:
from sqlalchemy import event
@event.listens_for(Session, "after_begin")
def after_begin(session, trans, conn):
conn.execute("set search path to my_schema, public")
On Apr 7, 2013, at 6:09 AM, Pedro Romano <[email protected]> wrote:
> Having to support different PostgreSQL schemas per web request and finding my
> current approach of setting the PostgreSQL schema search path a bit
> convoluted, when I try to use longer lived sessions in unit tests for
> convenience, because the session starts using a new database connection after
> a commit, I came across 'sqlalchemy.schema.ThreadLocalMetaData' which would
> seem to be an elegant solution for the problem if it supported a different
> 'schema' per thread as it does a different 'bind'.
>
> My question is: would it be feasible and does it make sense to 'schema'
> support to 'sqlalchemy.schema.ThreadLocalMetaData' for cases such as the one
> I described above?
>
> Thanks in advance for any feedback on this.
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
--
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.