ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1: SELECT "groups"."id", "groups"."name" FROM "groups" WHERE
jaune
Échec de la gestion de l'exception dans le middleware de l'application d'exception : PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1:
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) introuvable : No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) introuvable : No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
Nous utilisons Discourse derrière un proxy inverse, si bien que tous les utilisateurs partagent la même adresse IP. Nous aurions donc besoin de la recherche GeoIP. Je ne vois pas d’option pour désactiver complètement la recherche d’adresse IP. Il ne nous semble pas nécessaire de passer par le processus d’inscription et d’obtenir une licence pour une fonctionnalité dont nous n’avons pas besoin, simplement afin d’éliminer les erreurs des journaux…
Manquerais-je d’un paramètre pour désactiver cette fonctionnalité ?
Je pense que si vous ne définissez simplement pas la clé MaxMind, vous obtiendrez un avertissement lors de la reconstruction, mais cela ne nuira à rien.
Ne serait-il pas raisonnable de masquer et d’ignorer la recherche GeoIP dans les paramètres d’administration de l’utilisateur, si aucune clé de licence n’a été configurée ? Ou plutôt afficher une information/un espace réservé indiquant que la recherche GeoIP serait possible en configurant une clé de licence en suivant Configure MAXMIND for reverse IP lookups ?
Parcourir les journaux d’erreurs pour surveiller le fonctionnement du système est une bonne pratique, et il est agaçant de passer du temps à enquêter sur des erreurs, juste pour découvrir qu’elles sont attendues parce qu’une opération est tentée qui est censée échouer par défaut et qui pourrait être facilement évitée en vérifiant un seul paramètre .
Je peux essayer d’ouvrir une PR sur GitHub, si vous êtes globalement d’accord. Mais je néglige probablement quelque chose et ce n’est pas si facile ou cela a des inconvénients que je ne vois pas.
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) could not be found: No such file or directory @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
…mais je cherchais juste un moyen de les supprimer.
Je pourrais simplement configurer MaxMind, mais je n’en ai pas vraiment besoin.
Le PR ci-dessus a été fusionné le 23/11/2023 – ne devrais-je pas voir ces erreurs ?
Il a de nouveau été annulé car il était trop compliqué d’ajuster les tests automatisés pour cela. Une tentative a été faite, mais ceux-ci ont réintroduit les avertissements, brisant le but de mon PR en premier lieu :
D’où les deux annulations :
Le problème était très probablement de rendre la lecture de la base de données dépendante de l’existence d’une clé MaxMind. La base de données peut cependant être ajoutée d’autres manières. Sur notre propre instance, nous ajoutons en attendant des bases de données gratuites DB-IP, qui ne nécessitent pas de compte. Mon propre PR aurait donc brisé la façon dont nous procédons actuellement. La même chose a causé des tests échoués que j’ai corrigés dans mon PR. Mais sur la branche principale et/ou dans certains plugins, cela a probablement causé d’autres problèmes.
Une meilleure solution, si quelqu’un veut aborder cela à nouveau, serait de vérifier si les fichiers de la base de données existent, avant de tenter de les charger, au lieu de vérifier si la clé de licence est définie. Donc ici :
Uniquement si File.join(path, "GeoLite2-City.mmdb") existe, mmdb_load le.
La sortie GUI ajustée pourrait également avoir été un problème pour certains tests, mais il devrait être possible de l’ajouter sans casser les tests, comme solution de repli uniquement si aucune localisation n’est disponible et que le drapeau respectif est vrai, qui a été défini avec ret[:no_license] = true. Mais il faudrait le renommer en no_db ou quelque chose de similaire pour indiquer qu’il ne s’agit pas de savoir si une clé de licence MaxMind a été définie, mais si les fichiers de base de données réels existent ou non.
Merci pour l’info ! Il semble judicieux de vérifier l’existence des fichiers avant d’essayer de les charger. Je ne suis pas la personne idéale pour développer un correctif, donc j’essaierai d’activer MaxMind pour désencombrer mon journal.