Tùy chọn có liên quan là --locale=locale
vào initdb lệnh khởi tạo cụm cơ sở dữ liệu của bạn. Nếu bạn không cung cấp nó một cách rõ ràng, nó sẽ mặc định theo ngôn ngữ hệ thống. (Bạn có thể chạy Ubuntu của mình trên ngôn ngữ 'C'.)
Đọc thêm về nó trong hướng dẫn tuyệt vời tại đây .
Trong PostgreSQL, bạn có thể vẫn lẻn vào cơ sở dữ liệu với ngôn ngữ khác bằng cách dựa vào cơ sở dữ liệu mới template0
thay vì templeate1
mặc định . Tôi trích dẫn hướng dẫn tại đây
:
Nhưng tôi muốn tạo lại cụm cơ sở dữ liệu với ngôn ngữ mong muốn. Gọn gàng hơn nhiều.
Chỉnh sửa:thông tin về các ngôn ngữ có sẵn
Bạn chỉ có thể sử dụng ngôn ngữ được cung cấp bởi hệ điều hành. Tôi trích dẫn hướng dẫn tại đây :
Nhìn vào locale-gen
trong hệ thống Unix, nếu bạn muốn sử dụng ngôn ngữ chưa được tạo. Điều quan trọng cần hiểu là nhiều ngôn ngữ có thể được cài đặt trong hệ điều hành của bạn, nhưng chỉ một trong số chúng có thể được chọn cho các thông số hệ thống như LC_CTYPE
, LC_COLLATE
, v.v. Xem kết quả của locale
so với locale -a
trong vỏ. Thông thường, nó giống nhau cho tất cả, được đặt qua LC_ALL
.
@David:Những gì bạn đã làm có thể đã giải quyết được vấn đề của bạn, nhưng bạn có thể làm điều đó dễ dàng hơn. Ngoài ra, hãy lưu ý rằng biến môi trường LANG
chỉ cung cấp mặc định cho tất cả cài đặt ngôn ngữ. Nếu bất kỳ chúng nào được đặt thành khác, LANG
sẽ bị ghi đè. Đặt LC_ALL
để ghi đè bất kỳ cài đặt hiện có nào. Đây là một của nhiều trang web
trên web cho bạn biết thêm về điều đó.
Để kiểm tra tất cả cài đặt ngôn ngữ hiện tại của cơ sở dữ liệu (cụm) của bạn, hãy chạy trong cơ sở dữ liệu của bạn:
SHOW ALL;
Hoặc cụ thể hơn:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';