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