Нам нужно создать классы SQLAlchemy для доступа к нескольким внешним источникам данных, которые со временем будут увеличиваться. Мы используем декларативную базу для наших основных моделей ORM, и я знаю, что мы можем вручную указать новые классы ORM, используя autoload = True, чтобы автоматически генерировать отображение.
Проблема заключается в том, что мы должны иметь возможность генерировать их динамически, принимая что-то вроде этого:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
stored={}
stored['tablename']='my_internal_table_name'
stored['objectname']='MyObject'
и превратить его в нечто подобное динамически:
class MyObject(Base):
__tablename__ = 'my_internal_table_name'
__table_args__ = {'autoload':True}
Мы не хотим, чтобы классы сохранялись дольше, чем необходимо, чтобы открыть соединение, выполнить запросы и затем закрыть соединение. Поэтому в идеале мы можем поместить элементы в "сохраненную" переменную выше в базу данных и потянуть их по мере необходимости. Другая проблема заключается в том, что имя объекта (например, "MyObject" ) может использоваться для разных подключений, поэтому мы не можем определить его один раз и сохранить его.
Приветствуются любые предложения о том, как это можно сделать.
Спасибо...