ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1: SELECT "groups"."id", "groups"."name" FROM "groups" WHERE
yellow
Failed to handle exception in exception app middleware : PG::UndefinedTable: ERROR: relation "groups" does not exist LINE 1:
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
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
We are using Discourse behind a reverse proxy, so all users have the same IP, and we would need the GeoIP lookup - I do not see the option to disable the IP lookup altogether, instead of going through the registration process and obtaining a license for something that we are not needed, only in order to eliminate the errors from the logs…
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.