Hi,
I've asked this on Stack Overflow but haven't got any answers:
I would like to use autoload to use an existings database. I know how to
do it without declarative syntax (model/_init_.py):
def init_model(engine):
"""Call me before using any of the tables or classes in the model"""
t_events = Table('events', Base.metadata, schema='events',
autoload=True, autoload_with=engine)
orm.mapper(Event, t_events)
Session.configure(bind=engine)
class Event(object):
pass
This works fine, but I would like to use declarative syntax:
class Event(Base):
__tablename__ = 'events'
__table_args__ = {'schema': 'events', 'autoload': True}
Unfortunately, this way I get:
sqlalchemy.exc.UnboundExecutionError: No engine is bound to this
Table's MetaData. Pass an engine to the Table via
autoload_with=<someengine>, or associate the MetaData with an engine via
metadata.bind=<someengine>
The problem here is that I don't know where to get the engine from (to
use it in autoload_with) at the stage of importing the model (it's
available in init_model()). I tried adding
meta.Base.metadata.bind(engine)
to environment.py but it doesn't work. Anyone has found some elegant
solution?
Regards,
--
Juliusz Gonera
http://juliuszgonera.com/
--
You received this message because you are subscribed to the Google Groups
"pylons-discuss" 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/pylons-discuss?hl=en.