Appearance
【03】ERPNext 高级玩法:账套快照回退与多租户实验室
很多初学者在搭建完 ERPNext 后,都会有巨大的心理负担:“我要是装错了个插件”、“我在表单里加了错误字段”,是不是就把带有业务数据的系统全搞崩了?
传统的软件中,测试环境和生产环境往往需要两台完全独立的服务器或者独立的虚拟机。但在 Frappe 框架下,这完全是多余的。借助 ERPNext 强大的**多租户架构(Multi-tenant)以及极速快照(Backup & Restore)**机制,我们可以毫无压力地开启无限个“实验室实验”。
玩法一:利用 Hosts 魔法搭建极客“沙盒实验室”
我们希望在同一个机器上开启一个随时可以毁掉的沙盒,而且连买域名都不需要。
1. 创建一个虚假的“防呆”账套
在不改动任何外围部署的前提下,进入 Docker 终端:
bash
docker exec -it erpnext-backend-1 bash
# 捏造一个仅供本地识别的域名,如 sandbox.local
bench new-site sandbox.local --admin-password admin --db-root-password admin
bench --site sandbox.local install-app erpnextTIP
为什么要用 .local 结尾?这是一种绝佳的防呆机制。当你在浏览器里看到这个后缀,你的大脑会立刻意识到“这仅仅是个沙盒”,可以毫无顾忌地修改核心数据。
2. 魔法穿透 Hosts 映射
既然 sandbox.local 不是一个真域名,那么我们需要在个人电脑上“欺骗”浏览器:
- Mac/Linux 打开终端执行:
sudo nano /etc/hosts - Windows 用管理员权限向
C:\Windows\System32\drivers\etc\hosts写入:
添加这样一行:
text
你的云服务器实际IP地址 sandbox.local3. 折腾不再有负担
保存后,在浏览器地址栏敲下 http://sandbox.local:8080 时,请求飞速抵达服务器。而 Frappe 服务器一看请求头是 sandbox.local,就会完美把你切入属于这个实验环境的数据库里。你现在把沙盒搞爆炸都不会影响真正的线上了!
玩法二:随时打“快照”存档
在演练高风险操作(比如导入历史账款、安装庞大的行业定制模块)前,一定记得手动存档。这操作简单到只有一行命令:
bash
bench --site 你的真实环境名称 backup系统会几秒钟内在数据盘下生成含有当前时间戳的 .sql.gz 数据库包和 json 配置包。
玩法三:玩崩了?一键回档(时光倒流)
万一真搞砸了,怎么办? 假设你不小心把几百条商品数据导错了格式,没关系。只需一句命令“读档”:
bash
bench --site 你的真实环境名称 restore 刚才备份出来的绝对路径/xxx-database.sql.gz几秒钟后,那些错账消失得无影无踪,系统又回到了完美的昨日状态。
玩法四:最高阶克隆大法 —— 将生产环境平移到沙盒模拟
这是企业级实战中最实用的一招。 年底要做结转了,首次发工资要算社保了,这种大规模批处理谁也不敢在正式系统里瞎点。怎么办?我们可以把前一天备份好的“正式生产库文件”,强行恢复倒灌到刚才创建的“沙盒体验库”里去!
bash
# 注意看参数:目标坑是 sandbox.local,而数据源是正式环境打包出的 sql
bench --site sandbox.local restore /home/frappe/frappe-bench/sites/真实生产环境名称/private/backups/xxxx-database.sql.gzIMPORTANT
执行完毕后!sandbox.local 瞬间变成了你正式企业系统的 1:1 完美克隆体!里面有所有的真实发票、真实的组织架构、员工名单。且与真实系统做到了彻底的物理断连。
现在,你可以在这个沙盒里怎么进行跨月结转演练、大胆发测试工资单了,哪怕错得离谱,正式库依然安然无恙。
掌握了多级读档、毁站重建和跨站克隆,你才算真正用开发者极客维度的爽感在驾驭一套现代大型企业管理系统。享受这种控制力吧!
预告:系列进阶教程排期
这仅仅是 ERPNext 探索之旅的开始。系统跑起来并掌握了备份安全伞后,下方的中国本土化及高阶开发内容也在搬运整理中。后续敬请期待:
- 03 导入中国财务科目表:重置会计树的自动化实践
- 04 导入中文汉化补丁:社区翻译包覆盖思路
- 08 中国区本地化深度开发:如何优雅解耦核心代码
- 09 金税接口整合:直连开票的二次开发
- 10 微信/企微扫码登录:通过 Social Login 配置的经验
保持发版,保持折腾。