Migrer un forum phpBB3 vers Discourse

Il semble que la version actuelle du script contienne des bugs. Pouvez-vous essayer de mettre à jour votre fichier settings.yml et vous assurer que new_categories et category_mappings ressemblent à ce qui est affiché ci-dessous ?

new_categories: []
category_mappings: {}
11 « J'aime »

@gerhard merci pour l’astuce .. je vais essayer ça dans un instant

1 « J'aime »

Merci beaucoup, ça a marché

3 « J'aime »

Un message a été fusionné dans un sujet existant : Guide pour débutants : installer Discourse sur Windows 10 pour le développement

C’est une excellente nouvelle ! Merci. J’ai un test de vidage SQL 3.2 avec lequel je vais jouer, et je ferai une copie de la version 3.3 pour essayer. J’aimerais pouvoir vous laisser gérer cela, mais les poches sont très vides… hein.

Quoi qu’il en soit, merci encore et j’ai hâte de tester cela !

2 « J'aime »

J’ai des problèmes d’importation. Lorsque j’exécute le script d’importation, il prend mon sqldump et affiche « L’importation phpBB3 commence… », mais lance immédiatement une trace d’erreur avec l’erreur générale suivante :

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.0/lib/bootsnap/compile_cache.rb:29:in `permission_error’: bootsnap n’a pas la permission d’écrire des entrées de cache dans ‘tmp/cache/bootsnap/compile-cache’ (ou, moins probablement, n’a pas la permission de lire ‘/usr/local/lib/ruby/2.7.0/set.rb’) (Bootsnap::CompileCache::PermissionError)

Il s’agit manifestement d’une erreur de permissions, mais j’essaie de déterminer ce que je dois faire pour la résoudre. Toute aide est la bienvenue !

1 « J'aime »

MISE À JOUR ! J’ai trouvé la solution ! Un rapide chmod dans le conteneur a résolu le problème.

Testé avec une base de données phpBB 3.3 en appliquant la modification que vous avez suggérée, et tout fonctionne parfaitement ! Je poursuis des tests plus approfondis, mais globalement tout est en place, à l’exception de quelques problèmes de BBCode attendus. Les utilisateurs, les messages, les publications, tout a été copié correctement. La seule chose qui semble ne pas avoir fonctionné est la migration des mots de passe. C’est un détail mineur. Le module s’est installé et j’ai pu voir qu’il était chargé, donc je ne sais pas pourquoi ils n’ont pas été transférés. Cela ne fait rien pour autant ; je suis ravi de pouvoir enfin dire adieu à phpBB.

Merci encore @gerhard pour votre travail !

2 « J'aime »

C’est bon à savoir. N’hésitez pas à m’envoyer un MP avec des exemples de problèmes de BBCode. Je m’intéresse à la valeur de la colonne phpbb_posts.post_text.

3 « J'aime »

J’ai essayé à deux reprises d’importer un phpBB3 (.2.7).
La première fois, aucun sujet n’a été importé et les utilisateurs étaient corrompus.
J’ai réinstallé Ubuntu à neuf et tout refait, mais cette fois, je suis bloqué à l’étape import_phpbb3.sh. La base de données se charge, puis le processus s’arrête avec cette erreur :

L'importation phpBB3 commence...

Traceback (most recent call last):
        20: from script/import_scripts/phpbb3.rb:13:in `<main>'
        19: from script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
        18: from script/import_scripts/phpbb3.rb:15:in `<module:PhpBB3>'
        17: from script/import_scripts/phpbb3.rb:15:in `require_relative'
        16: from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:5:in `<top (required)>'
        15: from /var/www/discourse/script/import_scripts/phpbb3/support/settings.rb:5:in `require_relative'
        14: from /var/www/discourse/script/import_scripts/base.rb:16:in `<top (required)>'
        13: from /var/www/discourse/script/import_scripts/base.rb:16:in `require_relative'
        12: from /var/www/discourse/config/environment.rb:4:in `<top (required)>'
        11: from /var/www/discourse/config/environment.rb:4:in `require'
        10: from /var/www/discourse/config/application.rb:70:in `<top (required)>'
         9: from /var/www/discourse/config/application.rb:71:in `<module:Discourse>'
         8: from /var/www/discourse/config/application.rb:96:in `<class:Application>'
         7: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
         6: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
         5: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
         4: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:44:in `require'
         3: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
         2: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register'
         1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.7.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': cannot load such file -- mocha/version (LoadError)

Toute aide serait grandement appréciée.

1 « J'aime »

Mise à jour sur phpBB 3.3.. quelque chose que j’aurais aimé remarquer avant de transférer les forums : les pièces jointes ont changé dans la version 3.3. Au lieu d’utiliser le nom de fichier physique, chaque pièce jointe dispose désormais d’un identifiant unique qui est croisé dans la table phpbb_attachments. L’identifiant de fichier unique est au format USERID_chaîne_éventuellement_aléatoire.

Il n’y a pas d’extension de fichier ni rien de tel, car phpBB 3.3 le déduit à partir de la table. Je ne suis pas sûr qu’il existe un moyen d’automatiser le processus, je procède donc actuellement par lots pour restaurer les anciennes images. Je pourrais peut-être accélérer le processus car j’ai une copie plus ancienne des images avant la mise à jour 3.3, mais soyez avertis que l’importation depuis la version 3.3 peut rompre vos pièces jointes, et vous aurez du travail, surtout si vous en avez plusieurs milliers comme moi… tant pis ! La chance d’être volontairement le cobaye.

2 « J'aime »

Est-ce que c’était le maximum d’informations qu’il vous a fourni ? Le mien indiquait qu’il n’a pas pu charger le répertoire tmp/ en raison de problèmes de permissions, donc pendant que j’étais dans le conteneur d’importation, j’ai exécuté chmod -R 777 sur ce répertoire. Encore une fois, cela ne concernait que l’importation et n’aura pas d’impact sur votre conteneur « app ».

2 « J'aime »

J’ai réussi à importer depuis phpBB 3.2, mais j’ai dû :

  • Importer la base de données sur MariaDB interne manuellement : mysql -u root -p phpbb < /shared/import/mysql/data/phpbb_mysql.sql

  • Configurer settings.yml avec new_categories: [] et category_mappings: {}

  • Exécuter le script d’importation plusieurs fois, car les messages et les sujets provoquaient des erreurs lors de la première tentative

Après cela, tout fonctionne correctement…

2 « J'aime »

Bonjour à tous.
Je rencontre un problème.
Il y a https://discourse.example.com/
Je souhaite importer une base de données depuis https://forum.old.example.com/
J’ai suivi toutes les étapes de ce guide.
J’ai créé un dump de base de données que j’ai nommé phpbb_mysql.sql et que j’ai placé dans

/var/discourse/shared/standalone/import/data/

Après avoir exécuté

/var/discourse/launcher enter import
import_phpbb3.sh

J’obtiens l’erreur suivante :

La table ‘phpbb.phpbb_config’ n’existe pas

Cela pourrait-il être un problème de configuration dans settings.yml ?

Merci de m’aider à résoudre ce problème.

1 « J'aime »

Assurez-vous que le table_prefix est correct. S’affiche-t-il sous la forme phpbb_ dans le panneau de contrôle ?

2 « J'aime »

Oui, mon préfixe est correct

1 « J'aime »

Si je vois bien, schema dans votre settings.yml doit être défini sur teamlab_forum_saas.

2 « J'aime »

Ceci est le nom de la base de données. S’agit-il du schéma ?

1 « J'aime »

C’est exact. Dans MySQL, schema est synonyme de database. :slightly_smiling_face:

3 « J'aime »

Un instant, je vais essayer.

1 « J'aime »

Ça a marché. Merci beaucoup. Ça a aidé :+1: :clap:

2 « J'aime »