【问题标题】:How to determine if a PostgreSQL connection is to Postgres or EnterpriseDB如何确定 PostgreSQL 连接是到 Postgres 还是 EnterpriseDB
【发布时间】:2017-06-23 21:34:38
【问题描述】:

我当前的编程项目让我使用 psycopg2 库在 Python3 中访问 PostgreSQL 数据库。尽管一切进展顺利,但我发现开源 PostgreSQL 和 EnterpriseDB 版本(也称为 Postgres Plus Advanced Server 或 PPAS)之间存在细微差别。因此,我需要能够确定数据库连接是到 PPAS 实例还是常规 PostgreSQL 实例。

有没有办法通过 psycopg2 API 或查询数据库来做到这一点?

我怀疑可能有一种方法可以使用 SELECT version() 执行此操作,但我不确定我可能会看到哪些可能的值来指示我在哪个平台上。

【问题讨论】:

    标签: postgresql psycopg2 enterprisedb


    【解决方案1】:

    假设 PPAS 是 Postgresql 的 超集 (?),您可以发出查询调用仅存在于 PPAS 中的函数或系统表。

    • 如果成功,则为 PPAS。
    • 如果失败则不是 PPAS,应该是 Postgresql。或者你很不幸犯了其他类型的错误。

    【讨论】:

    • 是的。例如,在 information_schema 中查找仅存在于 EDB 中的目录。
    猜你喜欢
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多