> SAContext is a little top-level organizer for engines, metadatas,
> and a session context. It was written for Pylons due to the
> confusion people were having setting up their models, but the
> SAContext class itself can be used in any SQLAlchemy application.
>
> http://sluggo.scrapping.cc/python/sacontext/
>
hmm, why have i invented same thing 8 months ago...
Anyway. for a reason or another u dont have any "destroy" operations
there.
Here some i've found useful so far (sorry, not immediately usable):
--------------
def destroy( me, full =True):
me.session.close()
#SA caches/data
sqlalchemy.clear_mappers()
try: me.metadata.drop_all()
except AttributeError: pass
me.metadata = None
if full:
try: me.db.dispose()
except AttributeError: pass
me.db = None
#from sqlalchemy.orm import mapperlib
#mapperlib.global_extensions[:] = []
#more?
#these may be used between make_metadata()/bind() and destroy()
def destroy_tables( me):
me.metadata.drop_all()
def create_tables( me):
me.metadata.create_all()
def detach_instances( namespace_or_iterable, idname ='id'):
'useful to completely get rid of any SA sideeffects/artefacts,
e.g. for testing'
try: itervalues = namespace_or_iterable.itervalues() #if dict-like
except AttributeError: itervalues = namespace_or_iterable
for e in itervalues:
try: del e._instance_key
except AttributeError: pass
setattr( e, idname, None) #or delattr ??
############
as M.Bayer said in another thread of mine, certain things have
dependencies so creating/destroying is ordered.
One thing i'm still not sure, if i can rebind a (now bound) metadata
to another engine, how that affect mappers etc. i.e. how all these
lifetimes (engines, metadatas, mappers) actualy interact.
ciao
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---