2013-04-12 33 views
19

Tôi đã đọc các bài viết khác, khi tìm kiếm, một câu trả lời cho câu hỏi này.Postgresql: LRI: loại "citext" không tồn tại

Câu hỏi: Tôi đang sử dụng PostGreSQL 9.1 và tạo phần mở rộng 'citext' bằng 'CREATE EXTENSION citext' Nhưng khi tôi thử tạo bất kỳ cột kiểu 'citext' nào, nó ném lỗi này, L ERI: gõ "citext" không hiện hữu ? Tôi đã nghiên cứu nhưng không tìm thấy bất kỳ câu trả lời cụ thể nào? Bất kỳ ý tưởng tại sao?

Trả lời

41

Ok đã tìm ra. Tôi có một số cơ sở dữ liệu và CREATE EXTENSION citext phải được chạy cho mỗi db để cài đặt phần mở rộng trong DB đó. Bạn phải làm theo lời nhắc psql:

psql =# \c db_1 
CREATE EXTENSION citext; 

psql =# \c db_2 
CREATE EXTENSION citext; 

Hy vọng nó sẽ giúp người khác. Cảm ơn bạn.

+1

Thanx! Điều này đã giúp rất nhiều :-) – user1829860

+0

Có cách nào để làm cho tiện ích mở rộng này trên toàn cầu, để mọi cơ sở dữ liệu có thể sử dụng nó? –

3

@NullException đúng là phần mở rộng cần phải được tạo trong mỗi cơ sở dữ liệu. Nếu bạn muốn tự động tạo một tiện ích mở rộng, bạn có thể tạo nó trong cơ sở dữ liệu template1 (theo mặc định, ít nhất) là cơ sở dữ liệu được sử dụng làm mô hình cho "tạo cơ sở dữ liệu", với các quyền thích hợp, trong psql:

\c template1 
create extension citext; 

Sau đó, cơ sở dữ liệu mới sẽ bao gồm citext theo mặc định.

Các vấn đề liên quan