Migration vers utf8

Migration vers utf8

par Pierre Jacquet,
Nombre de réponses : 9

Bonjour à tous,

J'ai eu un problème en migrant ma base de données vers utf8 lors d'un passage de moodle 1.4 à moodle 1.6 : la migration s'est bien achevée, mais tous mes caractères accentués (é, è, ô,à etc.) de même que les guillemets se sont tranformés en ?.

Est-ce que cela pourrait tenir au fait que, lorsque j'ai restoré ma base de données sauvegardée sous 1.4 avec phpmyadmin (fonction import) chez mon nouveau serveur, j'ai laissé la case "jeu de caractères du fichier"  à utf8 ? Faut-il faire l'importation des données avec un autre jeu de caractères, puisque la base 1.4 n'est pas utf8 ? Je peux refaire la migration à partir de ma sauvegarde, mais quel jeu de caractères est utilisé pour les bases de données de moodle 1.4 ?

Si ce n'est pas l'explication, y a-t-il un moyen, lors de la migration, d'éviter ce problème? Sinon, quelle est la meilleure méthode pour re-modifier tous les "?" inopportuns : j'ai commencé à le faire document par document à partir des cours, mais c'est évidemment très long et fastidieux. Je préférerais passer par les fichiers textes, qui doivent être stockés quelque part, mais je ne sais pas où, et par les tables de base de données contenant les textes: avoir toutes les instances des textes dans quelques fichiers permettra d'aller plus vite.

Quelqu'un peut-il m'aider ? J'hésite entre refaire la migration plus proprement s'il y a un moyen, ou tout changer à la main pour récupérer des textes corrects.

Merci beaucoup de vos conseils

Pierre Jacquet

Moyenne des évaluations  -
En réponse à Pierre Jacquet

Re: Migration vers utf8

par Valery Fremaux,

En effet, il y a de fortes chances que tu ais fait un contre-encodage. Le jeu de base de l'export 1.4 est ISO-8859-1 qui correspond à l'ancien "Latin 1".

Il faut doc bien réimporter le fichier dans son encodage initial, sinon, tu réencodes en ISO un fichier déjà ISO ce qui brouille les séquences d'échappement.

En réponse à Pierre Jacquet

Re: Migration vers utf8

par Nicolas Martignoni,
Avatar Développeurs Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Comme Valery, je pense que le plus sage est de :

  1. Exporter la base de données dans un fichier SQL texte,
  2. Vérifier que l'encodage des caractères est bien ISO-Latin-1 (ce qui devrait être le cas si tout le monde a travaillé en français dans le Moodle en question),
  3. Convertir le fichier SQL en UTF-8, en suivant les instructions sur la page http://docs.moodle.org/fr/Conversion_de_fichiers_en_UTF-8,
  4. Importer le fichier converti dans la base de données,
  5. Faire la migration vers Moodle 1.6.
Cela devrait être tout. Voir peut-être la discussion http://moodle.org/mod/forum/discuss.php?d=39153 qui sera certainement utile.
Bonne chance !
En réponse à Nicolas Martignoni

Re: Migration vers utf8

par Pierre Jacquet,
Merci beaucoup. Je vais m'y atteler. Je préfère cela à tout changer à la main !
En réponse à Pierre Jacquet

Re: Migration vers utf8

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles
Question idiote peut-être ?

Pourquoi ne sauvegardez pas tous vos cours pour les réinstaller sur une nouvelle plateforme 1.9 flambant neuve ?

Daniel
En réponse à Daniel Méthot

Re: Migration vers utf8 et sauvegarde des cours

par Pierre Jacquet,

Oui, en effet, je suis arrivé à cette conclusion, la mise-à-jour pose trop de problèmes, mais il fallait, je pense, que je passe par la version 1.6 pour passer en Utf8. Mon problème, maintenant, c'est que je n'arrive pas à sauvegarder les cours à partir de ma version de 1.6, j'obtiens une série de messages d'erreur (voir ci-dessous) que je ne sais absolument pas comment gérer. Le paradoxe est que, dans ma tentative précédente, j'avais installé une première mise à jour vers 1.6 en gérant mal la transition de langues, et mes accents étaient remplacés par des ?, mais là, la sauvegarde des cours fonctionnait et la restauration sur 1.9 aussi !.

Je joins mes messages d'erreur, au cas où quelqu'un pourrait m'aider à résoudre ce problème de sauvegarde (j'ai tenté deux choses en vain : remplacer le fichier moodlelib.php par un nouveau fichier tiré de la même version, au cas où il aurait été corrompu; et réorienter les sauvegardes vers un dossier sur lequel je pouvais mettre des droits 777, ce que je ne peux faire sur moodledata).

Merci d'avance, vos conseils et avis sont extrêmement précieux.

Nom: backup-ecopoint-20090104-1830.zip
  • Création des structures temporaires
    Warning: mkdir() [function.mkdir]: Permission denied in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/lib/moodlelib.php on line 7069
  • Suppression des anciennes données
  • Création du fichier XML
    • Écriture de l'entête
      Warning: fopen(/srv/d_pjgandi/www/moodle.pierrejacquet.fr/moodledata/temp/backup/1231090231/moodle.xml) [function.fopen]: failed to open stream: No such file or directory in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 397

      Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 399
    • Écriture des informations générales
    • Écriture des données du cours
      • Informations du cours
        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 611

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 613

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 619

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 624

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 625

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 626

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 627

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 630

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 631

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 632

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 633

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 634

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 635

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 636

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 637

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 638

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 639

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 640

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 641

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 642

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 643

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 644

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 645

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 647

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 648

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 649

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 650

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 651

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 652

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 653

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 654

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 655

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 656

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 657

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 658

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 659

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 665

        Warning: fwrite(): supplied argument is not a valid stream resource in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/backup/backuplib.php on line 668
        An error occurred while backing up course start

      • Blocs
      • Sections

The backup did not complete successfully

P.S. (voir mes anciens messages) : j'ai finalement réussi à restaurer le login administrateur, en enlevant le dossiers sessions de moodledata (solution trouvée sur le forum anglais).

En réponse à Pierre Jacquet

Re: Migration vers utf8 et sauvegarde des cours

par Patrick Pollet,
Bonjour,

Tu as manifestement un problème de droits d'écriture du compte apache dans le dossier moodledata.
Warning: mkdir() [function.mkdir]: Permission denied in /srv/d_pjgandi/www/moodle.pierrejacquet.fr/htdocs/lib/moodlelib.php on line 7069

Il faut que le compte utilisé par ton serveur web (apache ou www-data) ait les droits d'écriture dans ce dossier soit sous Linux :

sudo chown -R apache:apache /srv/d_pjgandi/www/moodle.pierrejacquet.fr/moodledata/

ce qui devrait corriger les droits dans tous les dossiers sous moodledata dont le dossier temp/backup pour lequel l'accès semble interdit fopen(/srv/d_pjgandi/www/moodle.pierrejacquet.fr/moodledata/temp/backup/1231090231/moodle.xml)

Tu dit que tu ne peux pas le faire sous moodledata (vers un dossier sur lequel je pouvais mettre des droits 777, ce que je ne peux faire sur moodledata) ? C'est la que ca péche. Tu dois le faire (d'ou le sudo devant pour passer "root")
A+
En réponse à Patrick Pollet

Re: Migration vers utf8 et sauvegarde des cours

par Pierre Jacquet,

Merci infiniment pour cette réponse précise. J'avais essayé de faire un chmod 777 directement sur le dossier moodledata, mais le serveur ne l'a pas accepté, et je n'avais pas repéré sur quel dossier il fallait que je le fasse.

MAIS...la procédure de backup bloque à la fin, à la copie du fichier zip :

An error occurred while copying the zip file to the course directory


Cela pourrait être un problème de droits d'écriture, mais j'ai fait un chmod 777 sur tous les sous-répertoire de moodledata qui comprennent les backups (et sur le dossier backup indépendant de moodledata que j'ai créé pour les sauvegardes automatiques)

Si vous avez une idée, je suis vraiment preneur.

Un grand merci

Pierre

En réponse à Pierre Jacquet

Re: Migration vers utf8 et sauvegarde des cours

par Patrick Pollet,
ce message est envoyé à la ligne 3314 de backuplib.php
//Now, copy the zip file to course directory
if ($status) {
if (!defined('BACKUP_SILENTLY')) {
echo "".get_string("copyingzipfile").'';
}
if (!$status = copy_zip_to_course_dir ($preferences)) {
if (!defined('BACKUP_SILENTLY')) {
notify("An error occurred while copying the zip file to the course directory");
}
else {
$errorstr = "An error occurred while copying the zip file to the course directory";
return false;



}
}
}

Ce qui indique que le compte apache ou www-data n'a pas les droits requis dans le dossier du cours. Ce dossier est reperable par son numéro en cliquant sur Administration, Fichiers ( quelque chose du genre http://cipcnet.insa-lyon.fr/moodle/files/index.php?id=116
)
Va dans ce dossier et donne nous le résultat de la commande ll
[root@moodle moodlemoot2009]# cd ../moodlemoot2009_data/6
[root@moodle 6]# ll
total 8
drwxrwxrwx 2 apache apache 4096 2008-11-17 15:44 backupdata/
drwxrwxrwx 3 apache apache 4096 2008-11-17 15:45 moddata/
[root@moodle 6]#
En réponse à Patrick Pollet

Re: Migration vers utf8 et sauvegarde des cours

par Pierre Jacquet,

Merci pour cette réactivité. En fait, je ne sais pas passer cette commande, je n'ai pas accès à la ligne de commande (faut-il que j'installe un shell? Je suis débutant en la matière). Ce que je peux simplement dire, c'est que j'ai vérifié en cliquant sur administration>fichiers, qu'il s'agit du dossier n° 2 pour mon cours, et j'ai bien chmodé (par FTP ) les sous-dossiers backupdata et moddata à 777 et vérifié que ces permissions sont bien prises en compte.

Je suis hébergé chez gandi.

Bien cordialement

Pierre