SQLalchemy: есть ли способ скопировать данные из одной базы данных в другую, не просматривая ее? - PullRequest
0 голосов
/ 13 апреля 2019

Я создал два движка, использующих sqlalchemy, один из которых соединяется с таблицей Sql Server dbo.mytable, а другой (engine2) соединяется с таблицей PostgreSQL employee.personnel.Я хочу взять данные из dbo.mytable и вставить их в employee.personnel, если employee_id не существует.Я знаю, как это сделать - выполнить итерацию запроса, который я создал для сеанса Sql Server, и сравнить его с таблицей employee.personnel.Есть ли лучший способ сделать это, например, определить что-то в объектах класса, которое наследуется от класса SQL Server в PostgreSQL, так что процесс итерации не требуется.Как буквальное сопоставление одного класса другому и передача данных для вставок?

#first database
engine = create_engine('mssql+pymssql://stuff')
metadata = MetaData(schema='dbo')

metadata.reflect(engine,only=['mytable']) #only map these tables
Base = automap_base(metadata=metadata)
Base.prepare()

MyTable = Base.classes.mytable

session = Session(bind=engine)

qry = session.query(name,employee_id).filter(age>17)

#second database
engine2 = create_engine('postgresql://stuff')
metadata2 = MetaData(schema='employee')

metadata2.reflect(engine2,only=['personnel']) 
Base2 = automap_base(metadata=metadata2)
Base2.prepare()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...