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].
> 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.

-- 
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.

Reply via email to