通过收紧DB指数和使API有效载荷TL正常化来修复“D.map”崩溃不是一个功能;DR:我添加了缺失的PostgreSQL指数并强迫终点总是返回一个阵列。
更改停止了React选择器中的运行时间并恢复了正确的KPI计算.
我们内部的问题“ Condo Dashboard” 开始在生产中扔出一个 JavaScript 错误: 是用来填充平面选项的数据阵列 。
当页面被装入时,下拉为空并整个组件相撞.
输入 () 的 API 调用本应返回一系列对象, 但在特定条件下它返回或一个单一对象, 中断调用 。
根由结果为表格中的重复行,导致查询返回一个错误的结果集.
这些重复是表中缺少独特指数的副作用。
我尝试了第一卫士前端 — — 我加入了快速检查:这让错误平息了,但是UI仍然没有显示任何选项,因为API一直返回错误的形状.
是个乐团 不是固定的 手动数据正常化 – 在API控制器中,我将结果强制到一个数组: 这就产生了重复的条目和混乱的下游计算.
仪表板上的KPI号码仍然关闭.
这两种方法都解决了症状,但数据库的不一致性没有受到影响,因此,一旦新数据落地,虫子就可以重新出现。
执行1.
增加适当的指数(真正的固定) 缺失的索引允许重复进行相同的行和 。
我把它们加进去了 以下是进入仓库的diff(承诺7a6ca68e): 为什么这些指数?
保证每个经纪人有一个单一的代号,去掉打破总和的重复行.
加快构建选取器有效载荷的加盟,减少先前遗留了部分解答的查询的超时机会(因此).
外接键让"自愈"计划:孤儿的度量行被自动取出.
2.
重构度量衡端点以强制数组输出 使用 DB 清空后,我收紧控制器()以保证数组:
3.
如果API再次出现失误, 我留下了最低限度的防守, 以避免未来发生意外:
4.
更新文档和更改日志, Key Takeaway Database schema scheme( 缺少独特的索引或外国密钥) 可以被表观为似乎无关的前端错误 。
总是验证您依赖的数据合同是在源头执行的; 单行重复可以将数组转换为分解调用 。
添加适当的索引不仅可以修复即时错误,还可以改善查询性能和数据卫生.
下个 Write 集成测试对于这个断言的响应总是一个数组,即使表格是空的.
添加一个迁移脚本( ) , 因此索引是版本控制, 可以自动应用到中继/ 生产 。
将API与我公共系列作品的"普罗米修斯"(Prometheus primary part of my Building in Public series)——共享从墨西哥的Playa del Carmen建设SaaS项目的真正过程.
页面存档备份,存于互联网档案馆 Repo: ^ 2026-08-31 #playadev #buildinginpublic