Change #873

Datenbankk auf 4-Byte-UTF8 umstellen

Von following vor fast 3 Jahren hinzugefügt. Vor fast 3 Jahren aktualisiert.

Status:erledigt% erledigt:

100%

Priorität:3 hoch
Zugewiesen an:following
Zielversion:Version 16
Ticket Referenz: Kategorien:system okapi

Beschreibung

- Connection-Charset für lib1 einstellbar machen (SET NAMES = ... in lib1/clicompatbase.php)
- Script, um alle wichtigen Felder auf utf8mb4 umzustellen (logs.text, cache_desc.desc etc.)
- Dokumentation des utf8-Handlings

Default bleibt dann 2-Byte-UTF8, aber man kann die Datenbank eine OC-Installation auf Minimal-4-Byte-UTF8 umstellen. Es entsteht dann eine Inkonsistenz zwischen doc/sql/tables/*.sql und der tatsächlichen Datenbankstruktur.

Zugehörige Revisionen

Revision 0d8b0e73
Von following vor fast 3 Jahren hinzugefügt

improved utf8mb4 support; updates #873

Revision 2b465f9f
Von following vor fast 3 Jahren hinzugefügt

added utf-8 docs; closes #873

Revision 44e58cb1
Von following vor fast 3 Jahren hinzugefügt

added utf-8 docs; closes #873

Historie

#3 Von following vor fast 3 Jahren aktualisiert

  • Thema wurde von Datenbankk auf 4-Byte-UTF8 umstellen, Teil 1 zu Datenbankk auf 4-Byte-UTF8 umstellen geändert
  • Kategorien wurde von system zu system okapi geändert

Nach einigen weiteren Überlegungen: Es ist wesentlich übersichtlicher, die Datenstrukturen gleich komplett auf utf8mb4 zu migrieren. Und statt eines aufwändigen Update-Scripts tut es auch ein Dump, Austausch aller 'utf8' gegen 'utf8mb4' und Reimport. Das heißt:

  • Connection-Charset für lib1 einstellbar machen (SET NAMES = ... in lib1/clicompatbase.php)
  • Tabellendefinitionen in doc/sql/tables (und Exportcode für translate.php) aufdoppeln: einmal für utf8 und einmal für utf8mb4
  • Dokumentation des utf8-Handlings

Entsprechend für die OKAPI: https://github.com/opencaching/okapi/issues/352

Die vorhandene Datenbank kann man dumpen, im Dump die Statements `SET NAMES 'utf8';` und `CHARSET=utf8` durch utf8mb4 ersetzen und reimportieren. Oder man schreibt ein zusätzliches Script, das die Zeichensätze direkt in der Datenbank umstellt.

#4 Von following vor fast 3 Jahren aktualisiert

  • Status wurde von in Arbeit zu im Test geändert
  • % erledigt wurde von 0 zu 90 geändert

Nun wie folgt gelöst:

  • Konfigurationseinstellung $opt['charset']['mysql'] wird auch für lib1 verwendet
  • Automatische Migration utf8 -> utf8mb4 via dbsv-update.php
  • Zeichensatz in doc/sql/tables bleibt bei 'utf8' (Vorsicht beim Hinzufügen von Tabellen!)

#5 Von following vor fast 3 Jahren aktualisiert

  • Status wurde von im Test zu in Arbeit 80% geändert
  • % erledigt wurde von 90 zu 80 geändert

Dokumentation und OKAPI fehlen noch

#6 Von following vor fast 3 Jahren aktualisiert

  • Status wurde von in Arbeit 80% zu im Test geändert
  • % erledigt wurde von 80 zu 90 geändert

Doku fehlt noch

#7 Von following vor fast 3 Jahren aktualisiert

  • Status wurde von im Test zu erledigt geändert
  • % erledigt wurde von 90 zu 100 geändert

Status geändert durch Changeset oc-server3|2b465f9ff8bd84b1083abf66b62aafab7b88fd21.

Auch abrufbar als: Atom PDF