用途:使用 scripts/drift.py 将本地快照与外部或历史快照进行比较,无需第三方包。用于对账、同步检查等场景。
输入与对齐:支持 JSON 数组/对象和 CSV 文件,按必需的主键列或字段对齐记录,输出机器可读的 JSON。使用 --fields 可限制比较范围;嵌套 JSON 值按 JSON 值比较。缺失记录归为 added 或 removed,字段有差异的匹配记录出现在 changed 下,包含字段级 before/after 映射。
运行示例: python3 scripts/drift.py old.json new.json --key id python3 scripts/drift.py old.csv new.csv --key customer_id --fields plan,status python3 scripts/drift.py old.json new.json --key id --fail-on-drift
输出与退出码:输出为单个 JSON 文档,包含 summary、added、removed 和 changed。存在任何差异时 summary.has_drift 为 true。默认退出码为 0,即使发现漂移也如此,便于生成报告。使用 --fail-on-drift 时,退出码 2 表示漂移,0 表示无漂移;输入格式错误或参数无效退出码为 1。
限制:输入必须为 JSON 或 CSV,且格式相同或字段兼容;键必须唯一且每行都存在,重复或缺失键会报错;工具只读取文件,不调用外部服务,也不修改输入。对于定期对账,可持久化上次报告,仅在 summary.has_drift 变化或持续可操作时告警;本地 webhook 衍生快照在对照权威来源前仅作参考。