PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment définir le schéma dans pg-promise

Normalement, on définit le(s) schéma(s) par défaut pour la base de données ou le rôle, comme expliqué ici :

Ce n'est que si vous voulez le faire sans persister la modification, que vous voudrez peut-être définir le ou les schémas de manière dynamique, uniquement pour le processus en cours.

La bibliothèque prend en charge l'option schema dans Options d'initialisation :

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

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

facilitant la définition du ou des schémas dynamiques.

Exemples

  • Rendre votre propre schéma visible avec le public par défaut schéma :

    const initOptions = {
        schema: ['public', 'my_schema'] /* make both schemas visible */
    };
    
    const pgp = require('pg-promise')(initOptions);
    
  • Utilisation du rappel pour définir le schéma en fonction du contexte de la base de données (voir Base de données constructeur):

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