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âŚ
Non sarebbe ragionevole nascondere e saltare la ricerca GeoIP dalle impostazioni di amministrazione dellâutente, se non fosse stata configurata alcuna chiave di licenza? O invece mostrare unâinformazione/segnaposto che la ricerca GeoIP sarebbe possibile impostando una chiave di licenza seguendo Configure MAXMIND for reverse IP lookups?
Scorrere i log degli errori per monitorare il funzionamento del sistema è una buona pratica, ed è fastidioso dedicare tempo a indagare sugli errori, solo per scoprire che sono previsti perchĂŠ si tenta unâoperazione che ci si aspetta fallisca per impostazione predefinita e che potrebbe essere facilmente saltata controllando una singola impostazione .
Posso provare ad aprire una PR su GitHub, se fondamentalmente siete dâaccordo. Ma probabilmente sto trascurando qualcosa e non è cosĂŹ facile o ha degli svantaggi che non vedo.
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-ASN.mmdb) non è stato trovato: Nessun file o directory di questo tipo @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-ASN.mmdb
MaxMindDB (/var/www/discourse/vendor/data/GeoLite2-City.mmdb) non è stato trovato: Nessun file o directory di questo tipo @ rb_sysopen - /var/www/discourse/vendor/data/GeoLite2-City.mmdb
âŚma stavo solo cercando un modo per sopprimerle.
Ă stato nuovamente annullato poichĂŠ era troppo complicato adattare i test automatici per essi. Ă stato fatto un tentativo, ma questi hanno riaggiunto gli avvisi, vanificando lo scopo del mio PR in primo luogo:
Quindi entrambi annullati:
Il problema piĂš probabile è stato rendere la lettura del database dipendente dallâesistenza di una chiave MaxMind. Il database, tuttavia, può essere aggiunto in altri modi. Nella nostra istanza, nel frattempo aggiungiamo database gratuiti DB-IP, che non richiedono un account. Quindi il mio PR avrebbe interrotto il modo in cui lo facciamo ora. La stessa cosa ha causato il fallimento dei test che ho corretto nel mio PR. Ma sul branch principale e/o in alcuni plugin ciò ha probabilmente causato altri problemi.
Una soluzione migliore, se qualcuno vuole riprovare, sarebbe controllare se i file del database esistono, prima di tentare di caricarli, invece di verificare se la chiave di licenza è definita. Quindi qui:
Solo se File.join(path, "GeoLite2-City.mmdb") esiste, caricalo con mmdb_load.
Anche lâoutput GUI modificato potrebbe essere stato un problema per alcuni test, ma dovrebbe essere possibile aggiungerlo senza rompere i test, come fallback solo se non è disponibile alcuna posizione e quindi il rispettivo flag è vero, che è stato impostato con ret[:no_license] = true. Ma dovrebbe essere rinominato in no_db o qualcosa di simile per indicare che non si tratta di sapere se è stata definita una chiave di licenza MaxMind, ma se i file effettivi del database esistono o meno.
Grazie per le informazioni! Sembra sensato controllare i file prima di tentare di caricarli. Non sono la persona adatta a sviluppare una soluzione, quindi proverò ad abilitare MaxMind per ridurre il disordine nel mio log.