NodeJS Postgres切换工作模式

时间:2018-01-27 12:07:14

标签: node.js postgresql schema


我试图连接到我的postgres数据库。

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

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

中的表格

是否有任何解决方案可以在NodeJS服务器中切换当前的工作模式?

此致

3 个答案:

答案 0 :(得分:0)

首先,将模式名称更改为小写。大写可能会造成问题。

接下来,无论您要查询什么,只需执行[您的模式名称]。[您的表名称],就可以了。

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

答案 1 :(得分:0)

我自己找到了解决方案-client.query("SET search_path TO 'ZTB';");的工作完全符合@a_horse_with_no_name稍后所述。

答案 2 :(得分:0)

如果您使用pg-promise,则可以直接使用模式。

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

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

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