J’ai ce problème depuis un mois ; mais j’ai essayé plusieurs fois de mettre à niveau ; de migrer la base de données vers une nouvelle ; etc… sans succès.
C’était dans l’utilisateur admin ; j’ai essayé de migrer les données de l’admin vers une nouvelle ; même problème… je ne peux pas ouvrir les préférences ou le profil et j’obtiens une 404 ;
Je vois le même problème mais personne n’explique comment le résoudre et c’est assez ancien depuis 3 ans.
même problème et ils mentionnent que c’est résolu mais trop ancien et personne n’explique comment résoudre.
Cela semble être le même problème que celui que vous avez signalé précédemment. Je vais lier l’autre sujet ici au cas où il y aurait plus d’informations qui pourraient aider à comprendre ce qui s’est mal passé :
Je ne suis pas sûr de bien comprendre à 100%. Le problème est-il que vous ne pouvez pas accéder à l’écran d’administration ?
Et pensez-vous que cela pourrait être dû à des badges personnalisés ? D’autres utilisateurs avec des badges personnalisés sont-ils affectés ? Si oui, pourriez-vous révoquer les badges personnalisés, ou les supprimer entièrement ?
Je ne pense pas qu’il y ait une réinitialisation facile que vous puissiez faire pour les badges, même depuis la console Rails.
Jusqu’où êtes-vous allé avec la requête Data Explorer recommandée dans l’autre sujet ? Avez-vous réussi à identifier quelle image de badge pose problème ?
Après quelques expérimentations, je peux reproduire ce bug (ou quelque chose de similaire). J’ai essayé d’utiliser la console pour insérer une valeur « null » dans image_upload_id dans la table Badge, et cela l’a remplie avec 0 à la place. Cela a bloqué mon site de test d’une manière très similaire à ce que vous avez décrit.
Je l’ai « réparé » en changeant tous les image_upload_id en « 1 ». Cela m’a permis de revenir sur mon profil et dans la section Badges, mais je dois maintenant échanger manuellement tous les badges pour qu’ils n’aient que l’icône, etc.
Pour vérifier si votre problème est similaire, pouvez-vous accéder à votre explorateur de données et créer une nouvelle requête, puis coller ceci (et l’exécuter) :
Select name, image_upload_id
FROM badges b
Order By id desc
J’ai également compris qu’il faut « nil » et non « null » dans la console pour que cela fonctionne correctement.
Cela a réparé mes éléments cassés sans avoir à passer par tous manuellement :
Badge.where('image_upload_id=0').find_each do |b|
b.image_upload_id = nil
b.save
end
Sans connaître exactement le problème qui vous affecte, je ne peux pas dire avec certitude que cela résoudra votre problème de la même manière - bien qu’un « tout changer en nil » pourrait fonctionner pour vous ?
La requête de l’explorateur de données ne résoudra pas le problème, mais les informations qu’elle a fournies pourraient aider.
Si vous êtes à l’aise avec la console Rails, vous pourriez essayer ce qui suit pour réinitialiser ces 17 à null : (n’oubliez pas de faire une sauvegarde au cas où)
Accédez à la console Rails :
cd /var/discourse
./launcher enter app
rails c
Collez ceci :
Badge.where('image_upload_id=17').find_each do |b|
b.image_upload_id = nil
b.save
end
Et espérons que cela débloquera la section Badge et le profil afin que vous puissiez recommencer.