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

Il modo migliore per installare hstore su più schemi in un database Postgres?

Non è consentito installare estensioni più volte per database. Citando il manuale su CREATE EXTENSION :

Ricorda che l'estensione stessa non è considerata all'interno di alcuno schema:le estensioni hanno nomi non qualificati che devono essere univoci a livello di database. Ma gli oggetti appartenenti all'estensione possono trovarsi all'interno di schemi.

Se non vuoi includere public nel tuo search_path , installa le estensioni "pubbliche" in uno schema dedicato (esempio:extensions ). Userei un unico schema per tutti loro, non uno schema separato per ogni estensione. Ce ne sono parecchi.CREATE EXTENSION offre un'opzione per l'installazione su uno schema esistente a tua scelta:

    CREATE EXTENSION hstore SCHEMA extensions;

E assicurati che lo schema sia incluso nel search_path di utenti che potrebbero volerne utilizzare.

  • In che modo il percorso_ricerca influenza la risoluzione dell'identificatore e lo "schema corrente"

L'archiviazione dei dati non è affatto influenzata dallo schema in cui risiede l'estensione.