Random question for the list, and an idea.  I have an application I am
working on that needs to be able to dynamically bind its metadata to
an engine based upon configuration.  Logically, it seems I should use
`DynamicMetaData` and just call metadata.connect(engine) after I have
loaded my configuration.

However, I had written all of my code depending upon a threadlocal
strategy as defined by using `strategy='threadlocal'` in my
`create_engine` call.  It turns out that DynamicMetaData has threadlocal
behavior by default as well, and somehow these two things conflict.  My
problem was solved by making sure to pass `threadlocal=False` to my
DynamicMetaData constructor.

Now, here is my question: why does DynamicMetaData have any threadlocal
behavior at all?  It seems like the primary reason one would use a
DynamicMetaData would be for being able to delay the binding of your
engine to your metadata.  The fact that its threadlocal is easy to miss,
and I don't see why it has any threadlocal behavior at all.

Am I missing something?  Wouldn't it be better to two separate MetaData
types, one for dynamically binding your engine, and another for
threadlocal metadata?

--
Jonathan LaCour
http://cleverdevil.org




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to