Используя функции самоанализа SQLAlchemy, вы можете легко получить метакласс, который дает вам новый сопоставленный класс с именем таблицы. Класс все еще должен быть определен, но вам не нужно его определять.
def introspect(tablename, *mapper_args, **mapper_kwargs):
u'given a table name and optional mapper arguments return an ORM class'
global metadata # or pass it in, or use OO, whatever
global engine # or pass it in, or use OO, whatever
table = sqlalchemy.Table(tablename, metadata,
autoload=True, autoload_with=engine)
class DynamicClass: pass # you can provide nice __init__, __str__ methods
return sqlalchemy.orm.mapper(DynamicClass, table,
*mapper_args, **mapper_kwargs)
Hibernate имеет аналогичную функцию самоанализа, но он генерирует исходные файлы Java и поэтому является операцией во время сборки, а не во время выполнения.