Ciao,
Qual è il modo migliore per impostare default_limit su qualcosa come 12345678? Supponiamo che ne abbia bisogno e voglia più di 1000 righe.
Ciao,
Qual è il modo migliore per impostare default_limit su qualcosa come 12345678? Supponiamo che ne abbia bisogno e voglia più di 1000 righe.
Non riesco a capire di quale default_limit stai parlando. Non lo vedo in site_settings.yml. Cosa stai cercando di fare? E stai cercando di farlo in un plugin o in un componente tema (dato che hai postato in dev)?
Ok, l’unico modo è impostare un altro valore come questo:
Speravo ci fosse un modo migliore nell’interfaccia delle impostazioni di Discourse.
./launcher enter app
cd /var/www/discourse/plugins/discourse-data-explorer/
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
Certamente non l’unico modo.
Come da mio link, puoi fare il fork del plugin, cambiare la costante e clonare il tuo fork.
Potresti sempre fare una PR per un’impostazione del plugin a quel plugin…
Non è l’unico modo. È possibile apportare modifiche come queste con il launcher. Puoi consultare gli altri template per esempi su come apportare modifiche ai file.
Se questo non è l’unico modo, puoi fornire un esempio grazie.
Hanno recentemente modificato il codice per nuove impostazioni nascoste…
cd /var/discourse
./launcher enter app
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/default: 1000/default: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
sed -i 's/max: 10000/max: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
rails c
SiteSetting.data_explorer_query_result_limit=1000000
exit
exit
reboot
Come si può modificare una “impostazione nascosta” in modo più avanzato?
Spero non sia necessario modificare il codice per cambiare un limite così basilare del plugin.
È possibile modificare un’impostazione nascosta del sito utilizzando la console Rails (se si dispone dell’accesso al server).
cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000
Sebbene il limite superiore sia 10.000, e credo che questo sia solo il numero di risultati visualizzati “sullo schermo”, è già possibile esportare 10.000 risultati anche con l’impostazione predefinita di 1000.
Penso che aggiungere un offset di pagina alla tua query sia utile se vuoi recuperare batch da esportare e unire in un foglio di calcolo (ecc.). Ad esempio:
-- [params]
-- integer :page = 0
-- integer :limit = 10000
SELECT
category_id,
created_at::date,
id AS topic_id,
views
FROM topics
WHERE deleted_at IS NULL
ORDER BY created_at DESC
OFFSET :page * :limit
LIMIT :limit
Ho ottenuto solo 1000 risultati quando ho interrogato una query tramite l’API e considerando il significativo overhead per richiesta (fattore 100 rispetto alla richiesta grezza al database) preferirei aumentare quel limite piuttosto che eseguire query multiple. ![]()
Quell’approccio della console Rails è persistente rispetto agli aggiornamenti software e ai riavvii?
Cambiare un’impostazione del sito tramite la console Rails è uguale a farlo tramite l’interfaccia utente (solo per quelle nascoste non c’è un’interfaccia utente
), quindi la modifica rimarrà e non sarà influenzata da ricostruzioni o riavvii, ecc. ![]()
La mia conoscenza sull’esecuzione tramite API non è buona come il modo normale, ma penso che ci sia un metodo per ottenere i 10.000 completi senza cambiare l’impostazione nella console Rails in questo argomento - Run Data Explorer queries with the Discourse API
Grazie, quel parametro limit=ALL lo risolve per me.