您好,
将 default_limit 设置为 12345678 之类的值的最佳方法是什么?
假设我需要并且想要超过 1000 行。
您好,
将 default_limit 设置为 12345678 之类的值的最佳方法是什么?
假设我需要并且想要超过 1000 行。
我弄不清楚你在说哪个 default_limit。我在 site_settings.yml 中没看到它。你想做什么?你是在插件或主题组件中做的吗(因为你发在了 dev)?
好的,唯一的方法是像这样设置另一个值:
我希望在 Discourse 的设置 UI 中有更好的方法。
./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
当然不是唯一的方法。
根据我的链接,您可以分支(fork)该插件,更改常量并克隆您的分支。
您始终可以为该插件提交一个 PR(拉取请求)设置…
不只是唯一的方法。可以通过启动器进行此类更改。您可以查看其他模板以获取有关如何更改文件的示例。
如果这不是唯一的方法,你能提供一个例子吗?谢谢。
他们最近将代码更改为新的隐藏设置…
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
如何以最前沿的方式更改此类“隐藏设置”?
我希望它不需要编辑代码来更改插件的这种基本限制。
您可以使用 rails 控制台更改隐藏的站点设置(如果您有服务器访问权限)。
cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000
尽管上限是 10,000,而且我相信这只是“屏幕上”显示的结果数量——即使该设置为默认的 1000,您也可以导出 10,000 个结果。
我认为为查询添加页面偏移量对于您想要分批导出并在电子表格(等)中合并它们很有用。例如:
-- [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
通过 API 查询时,我只得到了 1000 个结果,考虑到每次请求的巨大开销(是直接请求数据库的 100 倍),我宁愿增加这个限制,而不是进行多次查询。![]()
这种 rail console 方法在软件升级和重启后是否仍然有效?
通过 rails console 更改站点设置与通过 UI 进行更改相同(只是隐藏的设置没有 UI
),因此更改将得以保留,不会受到重建或重启等因素的影响 ![]()
我对通过 API 运行它们的了解不如常规方式,但我认为有一个方法可以在不更改 rails console 中的设置的情况下获取全部 10,000 条记录,相关内容请参见 - Run Data Explorer queries with the Discourse API
谢谢,那个 limit=ALL 参数解决了我的问题。