Désolé de répondre à nouveau. J’ai du mal à comprendre pourquoi les permaliens ne sont pas créés.
Pour récapituler :
J’utilise les URL « moches » par défaut de SMF2 sur le domaine racine de premier niveau. Discourse est installé sur un sous-domaine de ce domaine racine. J’ai utilisé l’importateur smf2.rb de la dernière version du dépôt Discourse pour convertir SMF2 vers Discourse (en suivant votre guide), mais il n’y a aucun permalien dans Discourse après la fin de l’importation.
Il semble que cette fonction soit destinée aux URL optimisées ? Vous devrez donc l’adapter en conséquence (sauf si j’ai manqué quelque chose dans le code).
Je suis un peu confus car Marco n’a pas utilisé d’URLs élégantes, mais des permaliens ont été créés pour lui et il a utilisé le même script d’importation.
J’espère obtenir de l’aide pour que cela fonctionne avec les URLs « moches » par défaut de SMF… Toute orientation serait grandement appréciée. Merci à tous.
Vous devriez modifier ce permalink (ou peut-être les quelques autres ?) pour qu’il ressemble à ceux qui sont moches ? Bien que, cela me semble déjà assez moche. Vous pourriez également ajuster les permalink_normalizations en haut du fichier.
Eh bien, vous et moi, nous consultons alors des versions différentes. Je ne sais pas trop pourquoi cela pourrait être le cas. Mais ce qu’il faut chercher, ce sont ces lignes concernant les Permalinks.
Je suis confus car la version à laquelle j’ai lié semble être la dernière version « officielle »… mais vous êtes la deuxième personne qui fait référence à une version différente. Qu’est-ce que je rate ? Où puis-je obtenir votre version ?
Ah d’accord ! Désolé. On dirait que j’ai cliqué sur le script smf1. Alors regardez smf1.rb1, qui se trouve juste à côté du script smf2.rb que vous examinez.
Vous pouvez soit examiner le script smf1, soit utiliser make_prettyurl_permalinks comme modèle pour créer un make_uglyurl_permalinks. Cependant, cela lit dans la table des URL jolies, donc il serait peut-être plus simple d’utiliser smf1.rb comme modèle, mais je devrais consulter la base de données pour en être certain. Non, cela n’aiderait pas non plus grand-chose, sauf si vous modifiez les fonctions create_xxx.
Désolé. Je ne vois pas de correctif qui puisse être expliqué ici.
Je suis bloqué ici, mais je n’arrive pas à avancer. J’ai même créé un nouvel utilisateur sur le serveur MySQL avec un mot de passe natif et essayé, mais sans succès.
su discourse -c "bundle exec ruby script/import_scripts/smf2.rb /shared/smf2 -t UTC"
Chargement des groupes existants...
Chargement des utilisateurs existants...
Chargement des catégories existantes...
Chargement des publications existantes...
Chargement des sujets existants...
Traceback (most recent call last):
7: from script/import_scripts/smf2.rb:701:in `<main>'
6: from script/import_scripts/smf2.rb:28:in `run'
5: from script/import_scripts/smf2.rb:28:in `new'
4: from script/import_scripts/smf2.rb:62:in `initialize'
3: from script/import_scripts/smf2.rb:274:in `create_db_connection'
2: from script/import_scripts/smf2.rb:274:in `new'
1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': Chiffrement RSA non pris en charge - le plugin caching_sha2_password a été compilé avec le support GnuTLS (Mysql2::Error)
OK, après de NOMBREUSES heures d’aller-retour pour essayer de faire fonctionner cela, j’ai identifié le problème et je le publie ici pour tout autre qui pourrait rester bloqué comme moi.
Le conteneur Docker MySQL est en version 8, ce qui signifie que, pour une raison quelconque, la bibliothèque MariaDB utilisée par le modèle MySQL ne fonctionne pas.
Je n’ai pas inclus le fichier de modèle MySQL dans le fichier de configuration du conteneur Docker d’importation ; c’était le premier changement.
J’ai construit le conteneur d’importation, puis je suis entré dedans avec ./launcher enter import.
Cela affiche une invite interactive et vous pouvez sélectionner les valeurs par défaut (MySQL 8 avec les outils).
Ensuite, j’ai installé la bibliothèque MySQL 8 normale et poursuivi la construction :
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'
Une fois tout cela terminé, le reste était identique ; l’importation fonctionne maintenant.
Les développeurs de Discourse voudront peut-être ajuster les scripts d’importation pour tenir compte de cela ; au moins, cela est maintenant sur les forums pour que d’autres puissent le voir s’ils se retrouvent bloqués comme moi.
J’ai transféré manuellement le répertoire des pièces jointes de SMF2 vers Discourse avant l’importation, puis j’ai lancé l’importateur une fois, mais les uploads n’apparaissent pas dans les publications sur Discourse. Avez-vous une idée de la raison ?
J’ai déjà lancé l’importateur une fois sans S3 activé, mais je souhaite utiliser S3. Que dois-je faire ?
J’ai déjà exécuté l’importateur une fois sans S3. Les pièces jointes des sujets déjà importés seraient-elles transférées vers S3 lors d’un import delta ?
Je rencontre cette erreur lors de la création d’utilisateurs :
oxipng worker : oxipngintrouvable ; veuillez fournir le binaire approprié ou désactiver ce worker (argument --no-oxipng ou:oxipng => false via les options)
Il s’agit simplement d’un avertissement provenant de la bibliothèque d’optimisation d’images que nous utilisons côté serveur ; cela ne devrait bloquer rien.
J’ai donc pensé que mes problèmes d’importation étaient peut-être liés à des problèmes S3, mais il s’avère que S3 semble fonctionner parfaitement. Le problème que je rencontre est que, après avoir exécuté le script d’importation (avec S3 activé) et reconstruit le conteneur d’importation, il semble que tous les sujets de Discourse manquent des pièces jointes qui sont des fichiers joints dans les sujets smf2. Autrement dit, il n’y a aucun indice visuel indiquant qu’il y a un fichier joint dans un sujet Discourse, alors que cela est clairement visible comme une pièce jointe dans son équivalent smf2. Le résultat est le même lorsque j’importe avec S3 désactivé. Je manque un peu d’idées ici. Des idées ?
Il se peut que les images soient jointes au message, ce qui permet au script d’importation de les récupérer, mais qu’elles ne soient pas référencées dans le message, d’où leur absence d’affichage. Vous devez modifier le texte du message pour y inclure un lien vers les images. J’ai déjà observé ce cas de figure, je crois, sur un autre forum.