Support unicode complet - utf8mb4 - détails et précisions

Re: Support unicode complet - utf8mb4 - détails et précisions

par Séverin Terrier,
Nombre de réponses : 0
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Voila, j'avais effectué le changement sur une plateforme en juillet, et je viens de le faire hier sur notre plateforme principale (en 3.1.7, avant de passer à 3.3.1+).

Du coup, la commande exacte utilisée pour la conversion du fichier sql exporté (contenant la totalité de la base de données Moodle) était :

  sed 's/utf8/utf8mb4/g' <export.moodle.sql \
| sed 's/utf8mb4mb4/utf8mb4/g' \
| sed 's/DEFAULT CHARSET=utf8mb4/DEFAULT CHARSET=utf8mb4 ROW_FORMAT=Compressed/' \
| sed 's/utf8mb4_general_ci/utf8mb4_unicode_ci/g' \
| sed 's#http://mon.moodle.fr#https://mon.moodle.fr#g' \
> export.moodle.https.utf8mb4.sql
C'est une suite de remplacements (dont l'ordre a une importance) : chaque commande sed remplace un élément (séparateur / utilisé, puis # pour le dernier) par un autre (et g signifie pour chaque occurrence de chaque ligne).

Il est à noter que, passant par la même occasion à https, j'en ai profité pour intégrer une ligne pour ce changement clin d’œil

Le rechargement de la BDD a duré environ 1h45, pour un fichier dump (export.moodle.https.utf8mb4.sql) de 13 Go (et 17 Go de fichiers dans le dossier /var/lib/mysql/).

Du coup, toutes les tables (et colonnes) étaient directement converties correctement en utf8mb4 (et interclassement utf8md4_unicode_ci), sans avoir besoin de modifier autre chose sourire

Par contre, si la quasi-totalité des éléments étaient modifiés pour https, pour le contenu des blocs HTML, il faut malgré tout utiliser l'outil de remplacement de texte.

En espérant que cela puisse aider d'autres personnes.

Séverin
Moyenne des évaluations Utile (3)