PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come impostare lo schema in pg-promise

Normalmente, si impostano gli schemi predefiniti per il database o il ruolo, come spiegato qui:

È solo se vuoi farlo senza rendere persistente la modifica, potresti voler impostare gli schemi in modo dinamico, solo per il processo corrente.

La libreria supporta l'opzione schema all'interno di Opzioni di inizializzazione :

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

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

semplificando l'impostazione degli schemi dinamici.

Esempi

  • Rendere visibile il tuo schema insieme al public predefinito schema:

    const initOptions = {
        schema: ['public', 'my_schema'] /* make both schemas visible */
    };
    
    const pgp = require('pg-promise')(initOptions);
    
  • Utilizzo della callback per impostare lo schema in base al contesto del database (vedi Database costruttore):

    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);