Hola,
¿Cuál es la mejor manera de establecer default_limit en algo como 12345678?
Supongamos que necesito y quiero más de 1000 filas.
Hola,
¿Cuál es la mejor manera de establecer default_limit en algo como 12345678?
Supongamos que necesito y quiero más de 1000 filas.
No puedo entender a qué default_limit te refieres. No lo veo en site_settings.yml. ¿Qué intentas hacer? ¿Y lo intentas hacer en un plugin o en un componente temático (ya que publicaste en dev)?
Ok, la única forma es establecer otro valor como este:
Esperaba que hubiera una mejor manera en la interfaz de configuración de 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
Ciertamente no es la única manera.
Según mi enlace, puedes bifurcar el plugin, cambiar la constante y clonar tu bifurcación.
Siempre podrías enviar una solicitud de extracción (PR) a un ajuste del plugin para ese plugin…
No es la única manera. Es posible hacer cambios como esos con el lanzador. Puedes iniciar sesión en las otras plantillas para ver ejemplos de cómo hacer cambios en los archivos.
Si esta no es la única forma, ¿podrías proporcionar un ejemplo, gracias?
Recientemente cambiaron el código a una nueva configuración oculta…
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
¿Cómo se puede cambiar una “configuración oculta” de la manera más avanzada?
Espero que no requiera editar código para cambiar un límite tan básico del plugin.
Puedes cambiar una configuración oculta del sitio usando la consola de Rails (si tienes acceso al servidor).
cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000
Aunque el límite superior es 10,000, y creo que este es solo el número de resultados que se muestran ‘en pantalla’, ya puedes exportar 10,000 resultados incluso con la configuración en el valor predeterminado de 1000.
Creo que agregar un desplazamiento de página a tu consulta es útil si deseas obtener lotes para exportar y unir en una hoja de cálculo (etc.). por ejemplo:
-- [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
Solo obtuve 1000 resultados al consultar una consulta a través de la API y, considerando la sobrecarga significativa por solicitud (factor 100 con respecto a la solicitud directa a la base de datos), prefiero aumentar ese límite que realizar múltiples consultas. ![]()
¿Este enfoque de consola de Rails persiste en las actualizaciones y reinicios del software?
Cambiar una configuración del sitio a través de la consola de Rails es lo mismo que hacerlo a través de la interfaz de usuario (solo que para las ocultas no hay interfaz de usuario
), por lo que el cambio persistirá y no se verá afectado por reconstrucciones o reinicios, etc. ![]()
Mi conocimiento sobre cómo ejecutarlos a través de la API no es tan bueno como el de la forma habitual, pero creo que hay un método para obtener los 10.000 completos sin cambiar la configuración en la consola de Rails en este tema: Run Data Explorer queries with the Discourse API
Gracias, ese parámetro limit=ALL me lo soluciona.