ERPNext执行frappe.db.delete('File')后无法创建Home文件夹如何解决?
问题根因
你执行frappe.db.delete("File")操作时直接清空了File DocType的全量数据,ERPNext的文件系统依赖预设的Home根文件夹记录存储在该表中,删除后系统找不到默认根目录节点,就会触发上传文件报错、无法新建文件夹的问题。
修复步骤
- 进入站点对应的bench工作目录,执行
bench console命令进入Frappe交互式Python运行环境 - 依次执行以下三行代码写入标准Home根文件夹记录:
doc = frappe.get_doc({"doctype": "File", "file_name": "Home", "is_folder": 1, "is_home_folder": 1, "parent_folder": ""})doc.insert(ignore_permissions=True)frappe.db.commit() - 退出Python环境后执行
bench clear-cache清理站点缓存,重新登录系统即可正常上传文件、创建子文件夹
Home文件夹正确创建规范
- ERPNext初始化站点时会自动生成Home根文件夹,无特殊需求不要手动修改或删除该记录
- 如需清理冗余文件,不要直接清空File表,可通过后台「文件管理」列表页筛选无效文件批量删除,或使用
frappe.delete_doc("File", 目标文件ID, ignore_permissions=True)定向删除指定文件/文件夹 - 若确需重建Home根文件夹,必须通过上面控制台写入的方式创建,手动在页面新建的文件夹不会标记为系统默认根目录,会触发权限、路径关联类错误
内容的提问来源于stack exchange,提问作者John Owen
相关产品推荐
相关产品推荐

