Thanks. Michael! This works for me.
DoDo
Michael Bayer於 2012年10月21日星期日UTC+8下午11時41分06秒寫道:
>
> sure, you'd write a loop. I'm not sure if you're looking for core Table
> objects or declarative classes, I'm guessing declarative classes:
>
>
> from sqlalchemy.engine.reflection import Inspector
>
> insp = Inspector.from_engine(engine)
>
>
> class MyClass(Base):
> __abstract__ = True
> id = Column(Integer, primary_key=True)
> foobar = Column(String)
>
> cls_by_table = {}
> for table_name in insp.get_table_names():
> cls_by_table[table_name] = type(table_name, (MyClass, ),
> {'__tablename__':table_name})
>
>
> or if you want them in the module space (like from mymodule import
> tablename):
>
> from mypackage import mymod as mod
> for table_name in insp.get_table_names():
> cls = type(table_name, (MyClass, ), {'__tablename__':table_name})
> setattr(mod, table_name, cls)
>
>
>
> another option if you're just looking for quick and dirty mappings is to
> use SQLSoup:
>
> https://sqlsoup.readthedocs.org/en/latest/
>
> with this one, you just pull out an attribute name, and you have a mapped
> class, but it will reflect the whole thing:
>
> for table_name in insp.get_table_names():
> setattr(mod, sqlsoup.entity(table_name))
>
>
>
>
>
>
> On Oct 21, 2012, at 8:50 AM, DoDo wrote:
>
> Hello all,
>
> I encounter a situation that I have 100 tables in the same database but
> with same table structure. With SQLAlchemy, I need to copy 100 different
> class in order to adopt these tables. Is there any better way to do that?
> For example, I can use a general class to describe a table structure but
> use the index to generate this 100 tables class definition?
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/sqlalchemy/-/Z7QL25pEzwEJ.
> To post to this group, send email to [email protected]<javascript:>
> .
> To unsubscribe from this group, send email to
> [email protected] <javascript:>.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/sqlalchemy/-/IXIDR7jTMY4J.
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.