如何在 pg-promise 中设置模式

How to set schema in pg-promise

我正在搜索 pg-promise 的文档,特别是在创建客户端时。但是我找不到设置要在连接中使用的默认模式的选项,它总是使用 public 模式。怎么设置?

通常,为数据库或角色设置默认模式,如下所述:

只有在不保留更改的情况下,您才可能希望动态设置架构,仅针对当前进程。

库支持选项 schema within Initialization Options:

const initOptions = {
    schema: 'my_schema' /* can also be an array of strings or a callback */
};

const pgp = require('pg-promise')(initOptions);

更容易设置动态模式。

例子

  • 使您自己的架构与默认 public 架构一起可见:

    const initOptions = {
        schema: ['public', 'my_schema'] /* make both schemas visible */
    };
    
    const pgp = require('pg-promise')(initOptions);
    
  • 使用回调根据数据库上下文设置模式(参见Database构造函数):

    const initOptions = {
        schema(dc) {
            if(dc === /* whatever Database Context was used */) {
                return 'my_schema'; /* or an array of strings */
            }
            /* other provisions, if multiple databases are used. */
    
            /* can return null/undefined, if no schema change is needed. */
        }
    };
    
    const pgp = require('pg-promise')(initOptions);