2013-04-12 7 views
19

私は他の投稿、検索時にこの質問に対する回答を読んでいます。私はPostgreSQL 9.1を使用していて、 'CREATE EXTENSION citext'を使って拡張 'citext'を作成しましたが、タイプ 'citext'の列を作成しようとすると、このエラーがスローされます。存在する?私は研究しましたが、具体的な答えは見つかりませんでしたか?どんな考え?Postgresql:エラー: "citext"タイプが存在しません

答えて

41

よく分かりました。私はいくつかのデータベースを持っており、CREATE EXTENSION citextはそのDBに拡張をインストールするために各dbに対して実行する必要があります。 psqlプロンプトで行う必要があります:

psql =# \c db_1 
CREATE EXTENSION citext; 

psql =# \c db_2 
CREATE EXTENSION citext; 

他人に役立つことを願っています。ありがとうございました。

+1

Thanx!これは多くの助けになりました:-) – user1829860

+0

この拡張をグローバルに作成する方法はありますか?すべてのデータベースで使用できますか? –

3

@NullExceptionは、各データベースで拡張子を作成する必要があることは間違いありません。拡張子を自動的に作成する場合は、template1データベースに作成します(デフォルトでは少なくともデータベース作成用のモデルとして使用されるデータベースなので、適切なパーミッションを使用してpsql:

\c template1 
create extension citext; 

新しいデータベースにはデフォルトでcitextが含まれます。