Ergebnis 1 bis 10 von 10

Thema: Contao 3.5 LTS mit utf8mb4

  1. #1
    Contao-Nutzer Avatar von rflx
    Registriert seit
    06.08.2009.
    Ort
    127.0.0.1
    Beiträge
    98

    Frage Contao 3.5 LTS mit utf8mb4

    Hallo zusammen

    Ich bin gerade dabei eine neue Contao 3.5 Installation mit utf8mb4 (MySQL) aufzusetzen.
    Meine Frage; muss ich bei Contao etwas spezielles einrichten um mit utf8mb4 (Verbindungs-Kolliation: utf8mb4_general_ci) zu arbeiten? Ist die general_ci zu empfehlen?

    Die Server-Anforderungen sollten für den Betrieb von utf8mb4 vorhanden sein:
    • innodb_version 5.5.49-MariaDB-37.9
    • protocol_version 10
    • version 5.5.50-MariaDB


    Vielen Dank!

    Cheers

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Brauchst du unbedingt utf8mb4? Da könnte es noch zu Problemen kommen. Siehe zB: https://github.com/contao/core/issues/8484

  3. #3
    Contao-Nutzer Avatar von rflx
    Registriert seit
    06.08.2009.
    Ort
    127.0.0.1
    Beiträge
    98

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Brauchst du unbedingt utf8mb4?
    Hallo Spooky

    Nein, unbedingt benötige ich utf8mb4 nicht. Ich wollte nur up-to-date sein.
    Danke für den Link zum Thread auf GitHub. Demfall werde ich momentan noch mit utf8_general_ci arbeiten. Falls später eine Migration zu utf8mb4 gwünscht wird sollte das ja kein Problem sein.

    Cheers

  4. #4
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Hallo zusammen,
    ich habe ebenfalls eine Frage zur Nutzung der Kollation utf8mb4 in Contao 3.5 (3.5.31).
    Da ich vorhabe einige Icons und Emojis in der Datenbank zu speichern und gerne „zukunftssicher“ unterwegs sein möchte, habe ich in einer bestehenden Contao-Testinstallation das Datenbankschema auf utf8bm4 gestellt. Hierzu habe ich das Tabellenschema in der phpmyadmin Umgebung manuell umgestellt und in der localconfig.php die folgenden Werte ergänzt:

    PHP-Code:
    $GLOBALS['TL_CONFIG']['dbCharset'] = 'utf8mb4';
    $GLOBALS['TL_CONFIG']['dbCollation'] = 'utf8mb4_unicode_ci'
    Quelle: https://github.com/contao/core-bundle/issues/113

    Dummerweise erhalte ich in der Erweiterungsverwaltung im BE jetzt etliche Einträge in der Rubrik „Datenbank aktualisieren“, nachdem fast alle Tabellen aktualisiert werden müssen. Wenn ich die von Contao gewünschte Aktualisierung jedoch durchführe, bleiben die Einträge über die fehlerhaften Tabellen unverändert bestehen. Lediglich die eine Tabelle, die ich manuell auf uft8mb4 gestellt habe, fehlt in der Auflistung. Gleiche Bild zeigt sich im Install-tool (contoa/install.php).

    Zusätzlich habe ich eine frische Contao Testinstallation aufgesetzt und hier von Anfang an utf8mb4 eingestellt (die Datenbank entsprechend angelegt). Hier zeigt sich ein anderes Bild. Im „Datenbank aktualisieren“ Dialog erscheinen keine Fehlermeldungen, jedoch sehe ich im phpmyadmin, dass alle Tabellen die Kollation „utf8_general_ci“ eingetragen haben, anstatt meiner gewünschten „utf8mb4_general_ci“ bzw. „utf8mb4_unicode_ci“.
    Kann mir jemand sagen, wie ich eine bestehende Contao Instanz auf utf8mb4 umstellen kann? Muss ich alle Tabellen manuell umstellen oder gibt es hier eine Contao valide Möglichkeit? Oder ist hier grundsätzlich von abzuraten (die auf der verlinkten Seite Besprochenen Probleme mal kurz außer Acht gelassen)?

    Danke und Gruß
    *igi*

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Du musst die Tabellen manuell umstellen.

  6. #6
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn Zugriff auf die Konfigurationsdatei my.cnf bzw. .my.cnf besteht, könnte man dort auch den Standardwert entsprechend setzen:
    Code:
    default-character-set = utf8mb4
    Das beträfe dann alle neu erstellten Datenbanken.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  7. #7
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Okay, verstehe. Danke für die Informationen!
    Ich werde das heute Abend nochmal ausprobieren.

    Sehe ich es richtig, dass es nicht möglich ist, lediglich eine Tabelle im utf8mb4 Schema zu verwenden und die übrigen so zu lassen wie sie sind?
    In der localconfig.php wird es ja schließlich einmal global definiert. Oder gibt es einen Trick um nur die eine Tabelle, die ich für mein Vorhaben umwandeln muss, anzupassen?

  8. #8
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Noch ein kleiner Nachtrag, auch um die initiale Frage nochmal in den Fokus zu rücken, wenn auch diese schon etwas älter ist:
    Ich würde meine Datenbank dann komplett auf utf8mb4_unicode_ci umstellen. Oder spricht irgendetwas gegen unicode_ci?

    Der folgende Beitrag erklärt die Unterschiede recht gut und stellt die These in den Raum, dass a) utf8mb4 grundsätzlich utf8 zu bevorzugen ist und dass unicode_ci grundsätzlich general_ci zu bevorzugen ist:
    https://stackoverflow.com/questions/.../766996#766996

    Gilt diese Lebensweisheit auch für Contao oder gibt es hier noch etwas zu bedenken?

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.114
    Partner-ID
    10107

    Standard

    Zitat Zitat von *igi* Beitrag anzeigen
    Oder spricht irgendetwas gegen unicode_ci?
    Nein, solltes du ohnehin generell verwenden (außer du hast andere Anforderungen).

  10. #10
    Contao-Nutzer
    Registriert seit
    11.09.2016.
    Beiträge
    79

    Standard

    Okay, vielen Dank.
    Grundsätzlich spricht auch nichts gegen das manuelle Anpassen der Tabellen. Ist halt eine einmalige Fleißarbeit.
    Ich verstehe jedoch nicht so ganz, warum man Contao nicht beibringen kann, bei einer Neuinstallation gleich alles auf utf8mb4_unicode_ci zu setzen.
    Selbst wenn ich die Kollation im Installtool gleich auf utf8mb4_unicode_ci und bei der Datenbankverbindung den Zeichsatz auf utf8mb4 setze, richtet er die Tabellen alle mit utf8mb4_general_ci ein... und merkt dann ganz überrascht, dass alle Tabellen aktualisiert werden müssen.

    Ist das ein Stand, mit dem ich leben muss oder kann man das irgendwie kompensieren?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •