Tan*_*rad 5 python postgresql sqlalchemy
我正在使用SQLAlchemy在PostgreSQL数据库中的特定模式下生成表。如果该架构不存在,我想创建它。我知道PostgreSQL查询来检查架构的存在:
SELECT exists(select schema_name FROM information_schema.schemata WHERE schema_name = 'foo')
Run Code Online (Sandbox Code Playgroud)
但我想知道如何使用SQLAlchemy处理此问题。
@javax的答案几乎是正确的;以下是一些澄清:
q = exists(select([("schema_name")]).select_from("information_schema.schemata")
.where("schema_name = 'foo'"))
if not session.query(q).scalar():
session.execute('CREATE SCHEMA foo;')
Run Code Online (Sandbox Code Playgroud)
如果您想将其与 SQLAlchemy 集成,您可以使用反射,但为了更简单、更快捷的解决方案:
from sqlalchemy.sql import exists, select
exists(select([("schema_name")]).select_from("information_schema.schemata").
where("schema_name == 'foo'"))
Run Code Online (Sandbox Code Playgroud)
这将返回True或False。