使用 pg-promise 的 dblink 扩展

Using dblink extension from pg-promise

我有一个带 dblink 扩展名的 PostgreSQL 数据库。 我可以使用 dblink 而不会出现 pgAdmin 的问题,但不能使用 pg-promise 从我的 nodeJS 代码中使用。

我已经检查过我在正确的架构和数据库上。 运行 SELECT * FROM pg_extension; 从我的代码中 return 安装了 dblink。但是 运行 包含 dblink 的查询会导致:error: function dblink(unknown, unknown) does not exist

在这种情况下我应该做些什么来使 dblink 正常工作?

这是我的代码的一个基本示例:

query1 = 'SELECT * FROM pg_extension;'
query2 = `Select *
     FROM dblink('host=XXX user=XXX password=XXXX dbname=XXXX',
    'select name from example_table')
    AS t(name text);`

db.any(
 query1
).then(function(results) {
 console.log('Query1 result:', results)
}).catch(function(err) {
 console.log(`Error in query1 ${err}`)
})

db.any(
  query2
).then(function(results) {
  console.log('Query2 result:', results)
}).catch(function(err) {
  console.log(`Error in query2 ${err}`)
})  

结果:

Query1 result: [
  {
    extname: 'plpgsql',
    extowner: 10,
    extnamespace: 11,
    extrelocatable: false,
    extversion: '1.0',
    extconfig: null,
    extcondition: null
  },
  {
    extname: 'dblink',
    extowner: 10,
    extnamespace: 2200,
    extrelocatable: true,
    extversion: '1.2',
    extconfig: null,
    extcondition: null
  },
  {
    extname: 'timescaledb',
    extowner: 10,
    extnamespace: 24523,
    extrelocatable: false,
    extversion: '1.7.1',
    extconfig: [
      25044, 25042, 25068, 25083,
      25081, 25102, 25100, 25118,
      25116, 25139, 25155, 25157,
      25173, 25175, 25193, 25210,
      25246, 25254, 25283, 25293,
      25303, 25307, 25324, 25343,
      25358, 25472, 25478, 25475
    ],
    extcondition: [
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      'WHERE id >= 1000',
      '',
      '',
      "WHERE key='exported_uuid'",
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      ''
    ]
  }
]
Error in query2 error: function dblink(unknown, unknown) does not exist

如果 dblink 安装在“public”中,但“public”不在我的 search_path.

中,这看起来与我得到的完全一样