SuperAPI AI 工具集

frappe-customizations-writer

写作与研究

查看项目

更新于 10-15 23:44

技能介绍

用途:当某个应用需要修改属于另一个应用的 DocType 结构时,使用该技能编写 Custom Field 与 Property Setter 定义,并写入正确的 sync_on_migrate JSON 文件,由 Frappe 在 bench migrate 时同步。

主要能力:收集规格(缺失时按清单访谈);定位目标文件 apps/{app}/{app}/{module_scrubbed}/custom/{dt_scrubbed}.json,模块可从现有 custom/ 文件推断或询问用户;将最小规格写入临时文件 /tmp/spec.json 并合并进目标文件;目标文件不存在时自动创建。脚本会把条目规范化为完整 Frappe 导出格式(含计算出的 name 与时间戳),从路径推断并设置 module,按 fieldname 或 (doc_type, field_name, property) 去重,并以 indent=1、sort_keys=True 保存。

使用方式:在 bench 根目录运行。BENCH_DIR=$(pwd);PYTHON="$BENCH_DIR/env/bin/python";SCRIPT=$(find "$BENCH_DIR" -path "*/frappe-customizations-writer/scripts/add_customization.py" 2>/dev/null | head -1);"$PYTHON" "$SCRIPT" apps/{app}/{app}/{module_scrubbed}/custom/{dt_scrubbed}.json /tmp/spec.json。完成后检查输出、删除临时文件。

限制与注意:优先级使用 sync_on_migrate JSON;补丁在全新安装时会被跳过,after_install 仅首次安装执行一次,二者都不保证所有站点都存在。需要每次迁移都执行的条件逻辑应使用 after_migrate;补丁中如需访问自定义字段列,先调用 sync_customizations(app=…)。文档未提供具体收费与平台信息。