Postgresql: erreur: type "citext" n'existe pas

j'ai lu d'autres messages, en cherchant, une réponse à cette question.

Question: j'utilise PostGreSQL 9.1, et j'ai créé l'extension 'citext' en utilisant 'CREATE EXTENSION citext' mais quand j'essaie de créer des colonnes de type 'citext', il lance cette erreur, Erreur: type "citext" n'existe pas ? J'ai fait des recherches mais ne trouve pas de réponses concrètes? Aucune idée pourquoi?

28
demandé sur NullException 2013-04-13 01:32:54

2 réponses

Ok compris. J'ai plusieurs bases de données et CREATE EXTENSION citext doit être exécuté pour chaque db pour installer l'extension dans DB. Vous devez le faire sur psql invite:

psql =# \c db_1
CREATE EXTENSION citext;

psql =# \c db_2
CREATE EXTENSION citext;

J'espère que ça aidera les autres. Remercier.

53
répondu NullException 2013-04-13 01:50:56

@NullException a raison de dire que l'extension doit être créée dans chaque base de données. Si vous voulez avoir automatiquement une extension créée, vous pouvez la créer dans le template1 base de données (par défaut, au moins), c'est la base de données utilisée comme modèle pour "créer une base de données", donc, avec les autorisations appropriées, dans psql:

\c template1
create extension citext;

alors les nouvelles bases de données incluront citext par défaut.

7
répondu shaunc 2017-08-31 13:40:10