Tôi đang sử dụng gói cơ sở dữ liệu cơ bản tại Heroku. Điều này chạy trên Postgres 9.1 có hỗ trợ cho các ngôn ngữ. Tôi đang gặp vấn đề với việc sắp xếp trong ứng dụng của mình vì các ký tự ÅÄÖ không được xử lý đúng cách (như ở Thụy Điển).Đặt ngôn ngữ trên Heroku postgres
Cài đặt để đặt là LC_COLLATE
, xử lý thứ tự chuỗi. Vấn đề là tôi không thể tìm thấy bất kỳ cách nào để thiết lập điều này trên Heroku. Các cơ sở dữ liệu được tạo ra có được lc_collate=en_US.UTF-8
, nhưng tôi cần phải đặt nó thành sv_SE.UTF-8
.
Không thể thay đổi cài đặt LC_COLLATE
này khi cơ sở dữ liệu đã được tạo, do đó tôi không thể thay đổi nó thông qua bảng điều khiển psql.
Vì vậy, làm cách nào tôi có thể đặt cài đặt này?
Wow, đó là thực sự gây phiền nhiễu. PostgreSQL hỗ trợ thiết lập collations cho mỗi cơ sở dữ liệu thông qua 'CREATE DATABASE ... LC_CTYPE 'blah' LC_COLLATE 'blah''; nó hút rằng Heroku không phơi bày điều đó với người dùng. –
Cảm ơn bạn, có vẻ như nó hoạt động để thay đổi đối chiếu cột. Tôi đã phải tạo ra collation đầu tiên mặc dù. Cảm ơn. – Linus
Cảm ơn! Cuối cùng. Tôi đã đấu tranh với điều này quá lâu. Đối với tôi, nó không hoạt động với "sv-SE.UTF-8" nhưng chỉ "sv-SE". Sử dụng đường ray, tôi đã thực hiện một nhiệm vụ cào để thay đổi collation với đoạn mã sau: ---- namespace: thiết lập làm nhiệm vụ : heroku_collation =>: môi trường làm ActiveRecord :: Base.establish_connection ActiveRecord :: Base. connection.execute 'ALTER TABLE municipalities ALTER COLUMN tên TYPE varchar COLLATE "sv_SE";' kết thúc kết thúc –