如何将“业界毒瘤”闭源模块清除

业界毒瘤

相信很多人之所以选择odoo就是因为它开源开放,虽然官方近些年来为了恰饭推出了企业版付费的模式,但节操仍在——企业版代码依旧开源开放。但是最近在客户项目中,突然发现了几个国产的微信公众号平台相关的模块,使用了闭源的方式——交付到客户手里的是加密过后的二进制代码。

这样做的带来的隐患有:

  • 源代码掌握在别人手中,出了问题只能找作者修改。
  • 一旦作者失联,项目将不可维护。
  • 数据产生之后将骑虎难下,议价权完全掌握在原作者手中。
  • 二进制代码不能Review,焉知其中没有后门或者在代码中下毒?

清除方法

首先,确认你没有生产数据在其中,否则,将会导致数据丢失。

闭源模块带来的问题之一就是本地调试极其不方便,代码出了问题无法调试。对于一个已经安装了闭源模块的数据库来说,我们可以通过一下步骤进行清除:

在数据库中,将闭源模块的安装状态设置为to remove:

1
update ir_module_module set state = 'to remove' where name ilike '%oe_jia%' and state='installed'

然后,重启服务,odoo将自动跳过这些模块,使你能够正常登录。

登录以后,找到应用,将这些毒瘤模块一一卸载清除:

呵呵,卸载时居然报错了:

忠告

不要使用不提供源码的第三方模块,因为这将对你的项目造成不可预估的风险,对你的金钱来说也可能是一笔无底洞,对后期接手项目的维护人员来说,更将是一场灾难。

你的支持我的动力