2013-04-12 19 views
19

Ho letto altri post, durante la ricerca, una risposta a questa domanda.Postgresql: ERRORE: il tipo "citext" non esiste

Domanda: sto usando PostGreSQL 9.1 e ho creato l'estensione 'citext' usando 'CREATE EXTENSION citext' Ma quando provo a creare colonne di tipo 'citext', lancia questo errore, ERRORE: digita "citext" non esiste? Ho fatto delle ricerche ma non ho trovato risposte concrete? Qualche idea del perché?

risposta

41

Ok capito. Ho diversi database e CREATE EXTENSION citext deve essere eseguito per ogni db per installare l'estensione in quel DB. È necessario eseguire il prompt di psql:

psql =# \c db_1 
CREATE EXTENSION citext; 

psql =# \c db_2 
CREATE EXTENSION citext; 

Spero che aiuti gli altri. Grazie.

+1

Grazie! Questo ha aiutato molto :-) – user1829860

+0

C'è un modo per rendere questa estensione globalmente, in modo che ogni database possa usarla? –

3

@NullException è corretto che l'estensione deve essere creata in ogni database. Se si desidera creare automaticamente un'estensione, è possibile crearla nel database template1 che (per impostazione predefinita, almeno) è il database utilizzato come modello per "creare database", quindi con autorizzazioni appropriate, in psql:

\c template1 
create extension citext; 

Quindi i nuovi database includeranno citext per impostazione predefinita.

Problemi correlati