Я использую MySQL. Однако мне удалось найти способы сделать это, используя sqlalchemy orm, но не используя язык выражений. Поэтому я специально ищу решения на основе языка ядра/выражения. Базы лежат на одном сервере
Вот как выглядит мое подключение:
connection = engine.connect().execution_options(
schema_translate_map = {current_database_schema: new_database_schema})
engine_1=create_engine("mysql+mysqldb://root:user@*******/DB_1")
engine_2=create_engine("mysql+mysqldb://root:user@*******/DB_2",pool_size=5)
metadata_1=MetaData(engine_1)
metadata_2=MetaData(engine_2)
metadata.reflect(bind=engine_1)
metadata.reflect(bind=engine_2)
table_1=metadata_1.tables['table_1']
table_2=metadata_2.tables['table_2']
query=select([table_1.c.name,table_2.c.name]).select_from(join(table_2,table_1.c.id==table_2.c.id,'left')
result=connection.execute(query).fetchall()
Однако, когда я пытаюсь соединить таблицы из разных баз данных, выдается ошибка, очевидно, потому что соединение принадлежит одной из баз данных. И я больше ничего не пробовал, потому что не смог найти способ решить эту проблему. Другой способ поставить вопрос (возможно) - «как подключиться к нескольким базам данных, используя одно соединение в ядре sqlalchemy».