栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQLAlchemy从create()打印原始SQL

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQLAlchemy从create()打印原始SQL

from sqlalchemy.schema import CreateTable

print(CreateTable(table))

如果使用声明性语法:

print(CreateTable(Model.__table__))

更新:

由于我已经接受了答案,并且klenwell答案中有重要信息,因此我也会在此处添加它。

我需要获取原始表sql才能为一些现有模型设置测试。这是我基于Antoine的答案作为概念证明为SQLAlchemy 0.7.4创建的成功单元测试:

from sqlalchemy import create_enginefrom sqlalchemy.schema import CreateTablefrom model import Foosql_url = "sqlite:///:memory:"    db_engine = create_engine(sql_url)table_sql = CreateTable(Foo.table).compile(db_engine)self.assertTrue("CREATE TABLE foos" in str(table_sql))

您可以通过使用引擎进行编译来获取特定数据库(MySQL,Postgresql等)的SQL。

print(CreateTable(Model.__table__).compile(engine))

更新2:

@jackotonye在注释中添加了一种无需引擎即可完成此操作的方法。

print(CreateTable(Model.__table__).compile(dialect=postgresql.dialect()))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号