繁体   English   中英

从 sql-server 数据库到另一个数据库创建所有表及其键和其他约束的副本

[英]create a copy of all tables with its key and other constraints from sql-server database to another database

我尝试通过 python 中的 SQLAlchemy 复制 sql-server 的表及其键和其他约束

`from sqlalchemy import *
DATABASE_CONN = f'mssql://@{SERVER}/{DATABASE}?driver={DRIVER}'

DATABASE_CONN2 = f'mssql://@{SERVER}/{DB2}?driver={DRIVER}'

engine = create_engine(DATABASE_CONN)

engine2 = create_engine(DATABASE_CONN2)

connection = engine.connect() connection2 = engine2.connect()

metadata = MetaData() table = Table('table_name', metadata, autoload=True, autoload_with=engine) table.create(engine2)

错误:

sqlalchemy.exc.NoSuchTableError: table_name

如果我使用特定的表名而不是“table_name”,那么它会在新数据库中创建该表,但我必须为所有表执行此操作,因此任何技术来解决此问题并使用其键和其他约束复制所有表一个 go。

您可以在一秒钟内从一个数据库中重新创建所有表模式,方法是将第一个模式反映到元数据 object 中,然后在第二个中创建表:

meta = MetaData()
meta.reflect(engine)
meta.create_all(engine2)

可以精确控制反映哪些表 - 查看反映数据库对象metadata.reflect的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM