[gelöst] ConfigDB, Umlauteproblem nach DB Migration

Begonnen von CoolTux, 17 August 2019, 19:44:19

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Udo,

Ich bin von MySQL (Maria) auf PostgreSQL migriert. Dazu habe ich mittels configdb dump die config gesichert und dann in einen weiteren MySQL Server importiert. Danach habe ich mittels pgloader die Daten von MySQL nach PostgreSQL migriert.
Bei meiner ersten FHEM Installation gibt es keine Probleme. Diese ist aber auch nicht so umfangreich wie die zweite.

Bei der zweiten gibt es folgendes Problem.
Wenn ich den Raum Badezimmer oder AnniKraussStr aufrufe werden die Räume mit Umlaute in der Raumübersicht rechts mit komischen Zeichen dargestellt. Das selbe bei Geräten im Raum.

Hast Du da ein paar Ideen oder Ansätze für mich? Laut pgadmin hat die PostgreSQL Datenbank Encoding UTF8 und Charakter Typ de_DE.UTF-8

Anbei ein paar Screenshots


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Eventuell einer der anderen User eine Idee.
Was ich noch sagen kann ist das die mysql DB wo es in postgresql geht später angelegt wurde. Eventuell gibt es bei den mysql DBs schon Unterschiede. Das schaue ich mir heute Abend mal an.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe nun einen Unterschied ausmachen können

p-fhem02 / der welcher später eine configDB bekam
MariaDB [(none)]> SELECT @@global.character_set_client;
+-------------------------------+
| @@global.character_set_client |
+-------------------------------+
| utf8mb4                       |
+-------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT @@global.character_set_connection;
+-----------------------------------+
| @@global.character_set_connection |
+-----------------------------------+
| utf8mb4                           |
+-----------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT @@global.character_set_database;
+---------------------------------+
| @@global.character_set_database |
+---------------------------------+
| utf8mb4                         |
+---------------------------------+
1 row in set (0.00 sec)



p-fhem01 / welcher als erstes eine configDB bekam
MariaDB [(none)]> SELECT @@global.character_set_database
    -> ;
+---------------------------------+
| @@global.character_set_database |
+---------------------------------+
| latin1                          |
+---------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT @@global.character_set_connection;
+-----------------------------------+
| @@global.character_set_connection |
+-----------------------------------+
| latin1                            |
+-----------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT @@global.character_set_client;
+-------------------------------+
| @@global.character_set_client |
+-------------------------------+
| latin1                        |
+-------------------------------+
1 row in set (0.00 sec)



Und nun die 10 Euro Frage, wie kann ich den Datensatz unter PostgreSQL in utf8 formatieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Morgennebel

Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

CoolTux

Dank für Deine Hilfe.

Ich dachte da eher an sowas
https://www.postgresql.org/docs/8.0/functions-string.html#CONVERSION-NAMES
9.4 String Functions and Operators

convert('PostgreSQL' using iso_8859_1_to_utf_8)

Da ich ja die vorhanden Zeichen umstricken muss. Bleibt nur die Frage wie man das genau anwendet und ob ich richtig liege.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Morgennebel

Wie hast Du denn die DB angelegt?

Laut https://stackoverflow.com/questions/9961795/utf8-postgresql-create-database-like-mysql-including-character-set-encoding-a
wäre


CREATE DATABASE "scratch"
  WITH OWNER "postgres"
  ENCODING 'UTF8'
  LC_COLLATE = 'en_US.UTF-8'
  LC_CTYPE = 'en_US.UTF-8';


richtig. Vielleicht einfach nochmal...?

Ciao, -MN

PS Danke für das testen, ich warte mit meiner Migration noch :)
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

CoolTux

Das anlegen der PostgreSQL war schon korrekt. Leider sind die Daten in der alten MySQL DB noch nicht alle utf8. Es ist ein Gemisch weil ich damals die MySQLDB mit latin1 angelegt hatte und dann konvertiert habe auf utf8 aber nicht den Inhalt korrekt konvertiert hatte.

Danke Dir aber für Deine Hilfe. Der Heiko hatte mir per PM auch noch was zugesendet das teste ich gerade.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

OK habe es mit nacharbeiten hinbekommen und gelernt das ich es mir eventuell alles hatte sparen können.
Anscheinend waren bei einigen Geräten innerhalb des DEF oder im alias die Umlaute kaputt was dann zu Fehlerhaften Darstellung anderer Ansichten geführt hat. Ich hätte also nur die reparieren müssen. Naja.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net