FHEM Forum

FHEM => Sonstiges => Thema gestartet von: CoolTux am 17 August 2019, 19:44:19

Titel: [gelöst] ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 17 August 2019, 19:44:19
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
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 19 August 2019, 13:20:59
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.
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 19 August 2019, 14:02:03
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.
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: Morgennebel am 19 August 2019, 14:33:09
https://www.postgresql.org/docs/9.0/multibyte.html Abschnitt 22.2.3 ?

Ciao, -MN
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 19 August 2019, 14:49:48
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.
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: Morgennebel am 19 August 2019, 19:03:57
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 :)
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 19 August 2019, 19:27:27
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.
Titel: Antw:ConfigDB, Umlauteproblem nach DB Migration
Beitrag von: CoolTux am 19 August 2019, 20:10:34
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