NodeJS Postgres 切换工作模式

Posted

技术标签:

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

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

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

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

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

问候

【问题讨论】:

欢迎来到 ***,拉斐尔。这是您在How to create a Minimal, Complete, and Verifiable example 上的指南。您能告诉我们您正在使用哪个 PG 模块以及您正在形成的连接字符串吗?您实施的相关 sn-ps 将帮助我们为您提供帮助。 set search_path ... postgresql.org/docs/current/static/… 我自己解决了。 client.query("SET search_path TO 'ZTB';"); 完成了这项工作。更新:正如@a​​_horse_with_no_name 所说。 @Rafael 你能发表你的评论作为答案吗? 【参考方案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 设置为返回架构的函数。

【讨论】:

以上是关于NodeJS Postgres 切换工作模式的主要内容,如果未能解决你的问题,请参考以下文章

存储 GeoJson 点并在给定距离/半径内查找点 | NODEJS、Postgres、NestJs、TypeOrm

使用 LIMIT / ORDER BY 和 pg Postgres NodeJS 作为参数

不管你年底换不换工作,了解下单例模式

python 切换工作目录

1.vi工作模式(3种)以及模式切换(转换)

eclipse 切换工作空间,原工作空间东西怎么没了