Impressionnant ! Même si mon ancien SMF n’utilise pas d’URL jolies ?
Que veux-tu dire par « pas vraiment » ?
Impressionnant ! Même si mon ancien SMF n’utilise pas d’URL jolies ?
Que veux-tu dire par « pas vraiment » ?
Pour répondre à vos questions :
index.php?topic=123) seront créés en tant que permaliens et fonctionneront, mais les ancres vers des messages spécifiques, telles que index.php?topic=123.msg789#msg789, ne seront plus conservées/fonctionneront plus. Elles sont tronquées à l’ID du sujet.Voici ci-dessous un exemple de permaliens de mon forum, importés depuis SMF2

Du moins, le sujet restera une référence pour certains messages. C’est amplement suffisant. Excellent, merci beaucoup pour votre réponse et aussi pour avoir rédigé ces instructions.
Désolé, j’ai oublié de demander : si mon SMF est configuré en catégorie → forum → sous-forum, dois-je d’abord supprimer la catégorie « forum » pour qu’il n’y ait que deux niveaux (forum → sous-forum) afin de pouvoir le convertir correctement vers Discourse ?
Bonjour @marcozambi,
Je suis curieux de savoir comment vous avez réussi à faire fonctionner cela. J’ai utilisé l’importateur le 19 octobre pour migrer un grand forum de SMF vers Discourse, et tous les liens dans l’ancien format sont essentiellement perdus (ce qui signifie que j’obtiens une erreur 404 lorsque j’utilise les anciennes URL).
Par exemple, l’ancien lien :
correspondait au sujet suivant :
Pourriez-vous partager votre « magie » ? ![]()
Pas de magie particulière.
Lors de mon import depuis SMF en septembre 2018, le script d’importation SMF2 a fait tout le travail.
Après l’importation de chaque message, le script créait le permalien correspondant.
J’ai néanmoins apporté de légères personnalisations aux scripts, que j’ai détaillées dans le premier message de ce sujet.
C’est exact. Vous devez « aplatir » votre arborescence existante de sous-forums SMF en deux niveaux.
Oui, et je vous remercie pour votre excellent message. Je l’ai suivi attentivement et j’ai pu migrer avec succès un forum contenant 6 millions de messages.
Mais peut-être que les liens permanents ont bel et bien été créés. Comment les vérifier ? S’ils sont présents dans la base de données, il se peut qu’il s’agisse simplement d’un problème nginx que je dois corriger.
Vous pouvez consulter la liste de vos permaliens en allant dans Admin → Personnaliser → Permaliens.
Vous pouvez également en créer de nouveaux depuis cet endroit, si nécessaire.
![]()
C’était vide, comme je le soupçonnais. Cela signifie que cette partie du script n’a pas fonctionné dans notre cas.
Bon, je peux toujours en construire certains manuellement (j’ai essayé et réussi pour l’exemple que j’ai posté ci-dessus).
Cette étape doit-elle utiliser les anciennes informations de la base de données SMF2, ou doit-elle contenir exactement ‘user’, ‘pass’ et ‘db’ ?
Cette étape doit-elle utiliser les anciennes informations de la base de données SMF2, ou exactement comme spécifié ; ‘db’, ‘user’ et ‘pass’ ?
Est-ce la seule étape où je dois utiliser les anciennes informations de la base de données SMF2 ?
Il s’agit des identifiants permettant de se connecter à l’instance MySQL dockerisée dans laquelle le dump de la base de données de votre forum SMF a été importé.
Pour être clair, l’instance MySQL dockerisée s’exécute sur le même serveur que Discourse, et elle ne doit contenir que le dump que vous auriez dû réaliser de la base de données SMF.
C’est la commande que vous devez exécuter sur le serveur hébergeant l’ancienne base de données SMF2 afin d’obtenir un dump, que vous devrez ensuite importer dans l’instance MySQL dockerisée mentionnée ci-dessus.
Merci pour votre réponse.
Oui, j’ai déjà importé la base de données smf2 originale sur le serveur Discourse dans l’instance MySQL conteneurisée.
Avec les informations MySQL conteneurisées dans Settings.php, je rencontre cette erreur lors de l’exécution du script d’importation :
Chargement des groupes existants…
Chargement des utilisateurs existants…
Chargement des catégories existantes…
Chargement des messages existants…
Chargement des sujets existants…
Création des groupes
Pile d’appels (le plus récent en dernier) :
11 : depuis script/import_scripts/smf2.rb:701:in `’
10 : depuis script/import_scripts/smf2.rb:28:in `run’
9 : depuis /var/www/discourse/script/import_scripts/base.rb:47:in `perform’
8 : depuis script/import_scripts/smf2.rb:66:in `execute’
7 : depuis script/import_scripts/smf2.rb:77:in `import_groups’
6 : depuis script/import_scripts/smf2.rb:281:in `query’
5 : depuis script/import_scripts/smf2.rb:287:in `__query’
4 : depuis /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.4/lib/patches/db/mysql2.rb:22:in `query’
3 : depuis /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `query’
2 : depuis /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:130:in `handle_interrupt’
1 : depuis /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `block in query’
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:131:in `_query’: La table ‘db.smf_membergroups’ n’existe pas ( Mysql2::Error )
Avez-vous des idées ?
J’ai suivi ce guide ligne par ligne à la lettre à plusieurs reprises, mais je reste bloqué à ce point.
Merci.
Vérifiez dans votre base de données MySQL si la table smf_membergroups existe. Si ce n’est pas le cas, soit :
L’extension du fichier n’a finalement pas d’importance. Si le fichier contient des instructions SQL valides, il sera chargé quel que soit son nom.
De plus, il est courant que la base de données ait un préfixe différent de smf_. De nombreux importateurs proposent cette option, mais je n’ai pas vérifié celui-ci.
L’utilisation des mêmes identifiants que ceux de la base de données SMF2 pour une instance MySQL conteneurisée a résolu mon problème. Merci les gars !
@Paracelsus Il semble que je sois dans la même situation ; les permaliens sont vides. ![]()
Mon SMF2 tourne sur le domaine racine tandis que Discourse tourne sur un sous-domaine du domaine racine de SMF2. Est-ce que cela a de l’importance ?
Oui… les permaliens sont un vrai casse-tête, mais j’ai appris à vivre avec. J’ai recherché sur Google chaque page web où un lien vers notre forum avait été publié (avec l’ancien format SMF), je me suis rendu sur ces pages, j’ai copié une chaîne de caractères ou un paragraphe transcrit, je l’ai recherché dans le forum Discourse et j’ai remplacé le lien par un permalien. Si votre forum SMF est toujours en ligne, je vous recommande de le faire maintenant, car parfois ces liens que les gens placent sur leurs pages web n’ont aucun texte ou citation associée, juste l’URL, et vous pouvez quand même retrouver le bon sujet.
Pour nous, nous avons utilisé notre première version sous l’adresse discourse.forumscp.com, tandis que forumscp.com restait sur SMF en tant que « forum de production » pendant un certain temps (afin de pouvoir tester des éléments sur Discourse et nous y habituer). J’ai testé le processus de mises à jour incrémentielles à plusieurs reprises, puis quelques semaines avant la date prévue, pour m’assurer que la transition se passerait comme prévu. Le jour de la transition, nous avons désactivé notre ancien forum, effectué la dernière mise à jour incrémentielle de la base de données de SMF vers Discourse, puis changé le domaine en suivant les instructions disponibles quelque part ici. Nous avons également eu besoin de l’aide de notre hébergeur pour vérifier les configurations Nginx, et je ne me souviens plus exactement, mais il y avait quelque chose au niveau du DNS que nous avons dû modifier. Nous avons simplement suivi les instructions de notre hébergeur et tout s’est bien passé.
Vous pouvez chercher un autre importateur qui gère les permaliens et copier le code. vBulletin et phpBB sont probablement de bons exemples.