【问题标题】:NodeJS Postgres switch working schemaNodeJS Postgres 切换工作模式
【发布时间】:2018-07-06 15:15:06
【问题描述】:


我正在尝试连接到我的 postgres 数据库。

一切正常,但在我的数据库中,我有 2 个模式。其中一个是PgAdminpublic)默认创建的,第二个是我自己创建的ZTB

当我使用 NodeJS 连接到我的数据库时,它默认连接到“public”架构,因此我无法从“ZTB”查询表。

有没有办法切换NodeJS服务器中当前的工作模式?

问候

【问题讨论】:

  • 欢迎来到 stackoverflow,拉斐尔。这是您在How to create a Minimal, Complete, and Verifiable example 上的指南。您能告诉我们您正在使用哪个 PG 模块以及您正在形成的连接字符串吗?您实施的相关 sn-ps 将帮助我们为您提供帮助。
  • 我自己解决了。 client.query("SET search_path TO 'ZTB';"); 完成了这项工作。更新:正如@a​​_horse_with_no_name 所说。
  • @Rafael 你能发表你的评论作为答案吗?

标签: node.js postgresql schema


【解决方案1】:

我自己找到了解决方案 - client.query("SET search_path TO 'ZTB';"); 完全按照 @a_horse_with_no_name 后来所说的那样完成了这项工作。

【讨论】:

    【解决方案2】:

    首先,将架构名称更改为小写。大写可能会产生问题。

    接下来,无论您想查询什么,只需执行 [您的架构名称]。[您的表名称],您应该没问题。

    client.query("select * from ztb.[your table name]"))
    

    【讨论】:

    • 感谢您的回复,但这不是我问题的答案,它已在 2 年前得到解决。 ;)
    【解决方案3】:

    如果您使用pg-promise,则可以直接选择架构。

    Initialization Options 中,有一个选项schema 支持灵活的值:

    const pgp = require('pg-promise')({
        schema: ['public', 'ZTB'] // access tables from "public" + "ZTB"
    });
    

    您甚至可以将schema 设置为返回架构的函数。

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2015-03-15
      • 1970-01-01
      • 2022-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      相关资源
      最近更新 更多