有没有办法对 ERPNext 自定义进行版本控制?

问题描述

我们有一个 Laravel 应用程序,我们通过 API 调用将 Erpnext 集成到该应用程序中。

我们为 Erpnext 生产环境添加了一些自定义设置,以配合我们对 Laravel 应用程序所做的更改。事实是,我们对 laravel 应用程序有版本控制,但对我们的 Erpnext 实例没有。所以大多数时候我们只是在开发时针对生产 Erpnext,因为我们现在只通过 API 检索数据。但是现在我们实现了将 POST/UPDATE 发送到 Erpnext 的功能,我们不能(也不应该)再这样做了。一个版本如何控制(通过 git)Erpnext 实例或应用程序?

我们对 Erpnext 所做的更改

  • 新的文档类型
  • 现有 DocType 中的自定义字段
  • 以 API 端点为目标或由其他一些事件(如更新记录)运行的自定义脚本。

解决方法

您始终可以 git fork ERPNext,在该 fork 中进行更改并部署该 fork 以用于生产目的。在 git 中保持 fork 是最新的很简单,至少对于关键的修复或者可能是定期的。

但是根据您列出的更改,也许拥有一个单独的 APP 是更好的方法。这样可以将您的所有更改放在一起,并简化双方的升级,包括您的代码和 erpnext。

frappe 框架和 erpnext 有很多方法来提取您的逻辑(钩子、使用fixture 自定义文档类型、python 或 javascript 中的覆盖),尽管有时需要耐心研究才能找出最佳方法。