Ich benutze den Basis-Datenbankplan bei Heroku. Dies läuft auf Postgres 9.1, die Unterstützung für Locales hat. Ich habe Probleme mit der Sortierung in meiner App, weil die Zeichen ÅÄÖ nicht richtig behandelt werden (wie es in Schweden der Fall ist).Set locale auf Heroku postgres
Die einzustellende Einstellung ist LC_COLLATE
, die die String-Reihenfolge behandelt. Das Problem ist, dass ich keine Möglichkeit finde, dies auf Heroku einzustellen. Die Datenbanken, die erstellt werden, erhalten lc_collate=en_US.UTF-8
, aber ich muss es auf sv_SE.UTF-8
setzen.
Diese LC_COLLATE
Einstellung kann nicht geändert werden, wenn die Datenbank erstellt wurde, daher kann ich sie nicht über die psql-Konsole ändern.
Also, wie kann ich das einstellen?
Wow, das ist wirklich ärgerlich ist. PostgreSQL unterstützt die Einstellung von Sortierungen pro Datenbank über 'CREATE DATABASE ... LC_CTYPE 'blah' LC_COLLATE 'blah''; Es ist nervig, dass Heroku das nicht den Benutzern aussetzt. –
Danke, es scheint zu funktionieren, um die Spaltensortierung zu ändern. Ich musste allerdings zuerst die Kollatierung erstellen. Vielen Dank. – Linus
Danke! Endlich. Ich habe mich damit zu lange herumgeschlagen. Für mich funktionierte das nicht mit "sv-SE.UTF-8", sondern nur mit "sv-SE". Mit Schienen, machte ich eine Harke Aufgabe die Sortierung mit folgenden Code zu ändern: ---- Namespace: setup tun Aufgabe: heroku_collation =>: Umwelt tun Active :: Base.establish_connection Activerecord :: Base. connection.execute 'ALTER TABLE Gemeinden ALTER COLUMN Name TYPE varchar COLLATE "sv_SE";' Ende Ende –