图表的存储查询上下文永远不会迁移,因此由旧版本保存的图表上的每个非"探索"路径 500 错误
QQ 错误描述
一张图表有两次:slices.params'持有图表的设置,而slices.query-context'持有从这些设置中构建的查询。 探索在每个渲染点重建“params”的查询,从不读取“query context”。 `query context'只有在用户保存图表时才写出,升级时没有任何内容重写。
每个消费者如果是 ** 不 ** 浏览器重放 存储查询逐字记录:
GET /api/v1/chart/<id>/data/'超级集/charts/data/api.py' does`json.loads(chart.query context)'- 警报和报告、缩略图、缓存取暖、CSV/Excel导出,通过同一端点
- MCP服务器的图表数据工具
因此,存储的查询时间在查询引擎运行的同时,一个上次保存的图表将一个旧的查询交给了当前引擎. 结果是在所有这些路径上都有500条路程,而同样的图表在"探索"中则完美无缺. 这使得它看起来像一个数据或许可问题,而不是一个计划驱动问题.
这是与#33152("维兹迁移只迁移窗体 数据,而不是查询对象)相同的家族. 这有问题,因为缓存取暖或提醒等后端进程以及报告使用已保存的查询对象"")和#31872,但是它不需要导入,也不需要进行迁移来触发——只有时间.
• 症状1——一个已删除的后处理选项
"weery Object.exec post processing"将存储的选项直接通过:
df = gettr(熊猫 后处理,操作) (df, ** 选项)
枢轴'曾取平面-柱'和重置-索引'。 平板化后来成为它自己的 " 平板 " 操作,参数被去除,但在此之前保存的图表仍然被储存在所储存的query context'中。 重放一个给:
TypeError: pivot () 得到了一个出乎意料的关键词参数“ flatten columns ”
存储的查询没有迁移,所以这些图表是永久的,直到有人在Explore中打开每一个并重新保存它。
还有一个缺陷 隐藏了这一点 任何基于反思的修复。 在超级集/utils/pandas 后处理/utils.py'返回def 包裹(df, ** options)',不使用`functools'。 包装,所以:
检查. 签名( 关键)
(df:对象,**选项:对象) - > 对象
十项业务使用该装饰(综合'、比较'、贡献'、累积'、发展'、支柱'、重名'、滚动'、选择'、选择')。 他们都报告一个‘kwargs'的签名,失去他们的‘ '和‘doc',不能被回顾。检查.unwrap ' 没有任何帮助,因为没有wraps'就没有wrapped'。
QQ 症状 2 — 无时间列的时间序列
由更古老的前端商店“is times系列: true”在查询中保存的图表,而时间柱在params'中作为granularity sqla'生存。 `超级集/模型/帮助.py'然后提出:
未作为部分表格配置提供的日期栏,按此类图表要求
同样,在探索中正确, 到处都是500个 . . . . . . .
内容来源: apache/superset