PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como definir o esquema em pg-promise


Normalmente, define-se o(s) esquema(s) padrão para o banco de dados ou a função, conforme explicado aqui:

É apenas se você quiser fazer isso sem persistir a alteração, você pode querer definir o(s) esquema(s) dinamicamente, apenas para o processo atual.

A biblioteca suporta a opção schema em Opções de inicialização :
const initOptions = {
    schema: 'my_schema' /* can also be an array of strings or a callback */
};

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

tornando mais fácil definir o(s) esquema(s) dinâmico(s).

Exemplos

  • Tornando seu próprio esquema visível junto com o padrão public esquema:
    const initOptions = {
        schema: ['public', 'my_schema'] /* make both schemas visible */
    };
    
    const pgp = require('pg-promise')(initOptions);
    

  • Usando o retorno de chamada para definir o esquema com base no contexto do banco de dados (consulte Banco de dados construtor):
    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);