Problème avec le script d'importation ipboard3.rb

J’essaie d’importer des données de mon forum ipb et l’exécution du script ipboard3 me donne l’erreur suivante :

script/import_scripts/ipboard3.rb:375:in `clean_up': undefined method `encode!' for nil:NilClass (NoMethodError)
root@forum:/var/www/discourse#  `clean_up': undefined method `encode!'

Pourquoi cela indique-t-il une méthode undefined ‘encode!’ :confused:

C’est parce qu’il est appelé avec raw égal à nil.

Vous devrez donc déterminer quelle fonction l’appelle et pourquoi elle ne reçoit pas de données pour les données brutes du message.

Mon hypothèse est que cela vient de cette ligne :

           bio_raw: clean_up(u["pp_about_me"]),

Si c’est le cas, vous devriez peut-être modifier clean_up pour qu’elle renvoie nil si elle ne reçoit aucune donnée.

Est-ce que c’est bien ?

if raw.to_i.zero?
return
end

J’ai essayé ça et tous les utilisateurs, sujets et messages ont été importés, mais les messages n’ont pas de corps (ils sont vides). As-tu une idée de la raison ? Je ne pense pas que l’ajout de “return nil” fasse beaucoup de différence, qu’en penses-tu ?
De plus, tous les messages privés ont été importés, mais ils sont également vides.

La requête de base de données est incorrecte pour une raison quelconque. Elle ne récupère pas les données du contenu de l’article.

Non, cela se déclenchera trop souvent. Essayez ceci :

return if raw.nil?

C’est étrange, car j’utilise IPB3 et j’ai vérifié les noms des colonnes, ils correspondent :open_mouth:

Si vous exécutez les requêtes que le script effectue, fournissent-elles les données que vous attendez ?

Avez-vous modifié votre

if raw.to_i.zero?

en quelque chose comme

if raw.length == 0

"randome text".to_i.zero? sera toujours vrai.