如何在SQLAlchemy中的引擎SQL方言中使用DDL生成文件?
发布时间:2020-12-12 06:59:14 所属栏目:MsSql教程 来源:网络整理
导读:假设我有一个指向 MySQL数据库的引擎: engine = create_engine('mysql://arthurdent:answer42@localhost/dtdb',echo=True) 我可以用表格,FK等填充dtdb: metadata.create_all(engine) 有没有一种简单的方法来生成包含所有DDL语句的SQL文件,而不是实际将这些D
假设我有一个指向
MySQL数据库的引擎:
engine = create_engine('mysql://arthurdent:answer42@localhost/dtdb',echo=True) 我可以用表格,FK等填充dtdb: metadata.create_all(engine) 有没有一种简单的方法来生成包含所有DDL语句的SQL文件,而不是实际将这些DDL语句应用于dtdb? 到目前为止,我已经使用了echo = True生成的SQLAlchemy日志输出,并手动编辑它.但那太痛苦了. 看起来SA有相当复杂的模式管理API,但我还没有看到简单地将模式定义作为文本流式传输的示例. 解决方法快速回答是在 SQLAlchemy 0.8 FAQ.在SQLAlchemy 0.8中你需要做 engine = create_engine( 'mssql+pyodbc://./MyDb',strategy='mock',executor= lambda sql,*multiparams,**params: print (sql.compile(dialect=engine.dialect))) 在SQLAlchemy 0.9中,语法被简化了. engine = create_engine( 'mssql+pyodbc://./MyDb',**params: print (sql) 更长的答案是捕获输出仍然存在一些轻微问题.与文字类型的编码一样.但对于任何人来说,加强和抓住他们的痒都不是一个大问题.您总是可以让SQLAlchemy以编程方式创建一个空数据库并从那里转储SQL. 更困难的问题是处理架构迁移.这是SQLAlchemy-migrate可以帮助您的地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读