Dois-je trier les pièces jointes de XenForo dans un certain ordre ou simplement copier/coller la structure et le répertoire /tmp/attachments ?
Je procède actuellement à l’installation sur une nouvelle machine virtuelle avec un instantané, ce qui me permet de modifier rapidement les détails et de recommencer la migration.
Hier, j’ai placé le dossier des pièces jointes de XenForo, qui a la structure suivante : un dossier principal nommé attachments contenant 9 sous-dossiers nommés de 0 à 9, chacun renfermant environ 600 à 700 pièces jointes (.jpg). J’ai placé ce dossier dans var/discourse/shared/standalone/tmp/attachments et modifié le script xenforo.rb en ajoutant :
ATTACHMENT_DIR = '/shared/tmp/attachments'
J’ai testé avec la commande ls /tmp/attachments et j’ai bien obtenu la structure attendue, mais je rencontre la même erreur que la première fois :
creating topics and posts
74 / 74752 ( 0.1%) [99817 items/min] Traceback (most recent call last):
18: from script/import_scripts/xenforo.rb:396:in \u003cmain\u003e' 17: from /var/www/discourse/script/import_scripts/base.rb:47:in perform’
16: from script/import_scripts/xenforo.rb:32:in execute' 15: from script/import_scripts/xenforo.rb:174:in import_posts’
14: from /var/www/discourse/script/import_scripts/base.rb:869:in batches' 13: from /var/www/discourse/script/import_scripts/base.rb:869:in loop’
12: from /var/www/discourse/script/import_scripts/base.rb:870:in block in batches' 11: from script/import_scripts/xenforo.rb:180:in block in import_posts’
10: from /var/www/discourse/script/import_scripts/base.rb:490:in create_posts' 9: from /var/www/discourse/script/import_scripts/base.rb:490:in each’
8: from /var/www/discourse/script/import_scripts/base.rb:491:in block in create_posts' 7: from script/import_scripts/xenforo.rb:186:in block (2 levels) in import_posts’
6: from script/import_scripts/xenforo.rb:315:in process_xenforo_post' 5: from script/import_scripts/xenforo.rb:324:in process_xf_attachments’
4: from /usr/local/lib/ruby/2.6.0/set.rb:338:in each' 3: from /usr/local/lib/ruby/2.6.0/set.rb:338:in each_key’
2: from script/import_scripts/xenforo.rb:326:in block in process_xf_attachments' 1: from /usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in squish!’
/usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in gsub!': can't modify frozen String (FrozenError) root@my-app:/var/www/discourse#Text préformaté`
2019-11-15T23:00:00Z
J’ai supprimé le ! de la chaîne gsub! à l’endroit suivant :
/usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb
Maintenant, le script d’importation ne s’arrête plus et continue, affichant ces informations concernant les pièces jointes :
Quoi qu’il en soit, par exemple pour la dernière ligne :
Could not find file /shared/tmp/attachments//2/2485-c3da9f6ee1e33d3ebf418c5dea1f9e8a.data. Skipping attachment id 2485
…le fichier EST bien présent à ce chemin, mais il n’y a pas d’extension .data. À la place, il y a .JPG.
Toute aide est la bienvenue.
2019-11-15T23:00:00Z
Le script comportait un bug que j’ai identifié et corrigé ; je parviens maintenant à importer les pièces jointes.