SQLalchemy:有没有一种方法可以将数据从一个数据库复制到另一个数据库而又无需遍历整个数据库?

时间:2019-04-13 17:49:08

标签: python sqlalchemy flask-sqlalchemy sqlalchemy-migrate

我使用sqlalchemy创建了两个引擎,一个引擎连接到Sql Server表dbo.mytable,另一个引擎(engine2)连接到PostgreSQL表employee.personnel。我想从dbo.mytable中获取数据,如果employee_id不存在,则将其插入employee.personnel中。我知道执行此操作的方法是遍历为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()

0 个答案:

没有答案