我试图连接到我的postgres数据库。
一切正常,但在我的数据库中,我有2个模式。默认情况下,PgAdmin
(public
)创建了其中一个,我创建了第二个ZTB
。
当我使用NodeJS连接到我的数据库时,它默认连接到" public
"架构,因此我无法查询" ZTB"。
是否有任何解决方案可以在NodeJS服务器中切换当前的工作模式?
此致
答案 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
设置为返回架构的函数。