Katie Wurman <[email protected]> wrote:

> I’m trying to design an application that has several engines and unique 
> models associated with each engine. 
> 
> Ideally, I’d like to create one base/abstract model per engine, set the bind 
> for those, and have all child models inherit that bind. Unfortunately I can’t 
> seem to figure out how that would work. My best guess is the following 
> non-working solution:
> 
> # in models.py: 
> Base1 = declarative_base()
> Base2 = declarative_base()
> 
> class User1(Base1):
> “””
> Some model assigned to engine 1
> “””
> class User2(Base2)
> “””
> Some model assigned to engine 2
> “””
> 
> # in main.py:
> 
> engine1 = create_engine("postgresql+psycopg2://URI1”)
> engine2 = create_engine("postgresql+psycopg2://URI2”)
>     
> from .models import Base1, Base2
> mybinds = {
>          Base1 : engine1,
>          Base2 : engine2
>      }
> 
> db = scoped_session(sessionmaker())
> db.configure(binds=mybinds)
> 
> This results in the following error: 
> sqlalchemy.orm.exc.UnmappedClassError: Class 
> 'sqlalchemy.ext.declarative.api.Base' is not mapped
> 
> I’ve tried to use an abstract base as a key for mybinds with no luck, 
> however, when I use User1, User2, it works. I don’t want to do it like this 
> because I have a large number of models and would prefer not to list them all 
> out in the binds dictionary. 
> 
> How do I assign a bind to a model in this case? 

this kind of thing should be working in git master, grab it at 
https://github.com/zzzeek/sqlalchemy and let me know if that doesn’t fix it.


-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to