开发模式与生产模式有什么区别?
分析开发者模式主要用于(自定义应用)开发,主要有以下特点
使用bench start命令启动,独占一个命令终端窗口,程序执行过程中的输出实时显示在命令窗口,须通过ctrl + c停止
不使用nginx反向代理,通过8000端口访问
不使用redis缓存
自动启动一个watcher进程,实时监测代码(python, js, html等)更新,自动编译python,js代码无须压缩(最小化)直接推送到网页,实现代码变更自动生效
site config中增加developer_mode 参数,允许创建单据类型(可取消自定义custom勾选,生成python控制器脚手架代码)与自定义脚本报表
生产模式
使用 bench setup production命令转为生产模式, bench restart
使用sudo supervisorctl start all命令启动全部9个后台进程, 已添加为开机自启动,程序执行过程中的输出写入logs目录下对应log文件,可通过sudo supervisorctl stop all停止,(docker部署方式使用docker compose up -d启动, docker compose down停止)
使用nginx反向代理,可配置https,通过nginx配置的端口访问,一般是通用的80端口
后台数据库获取数据优先使用redis缓存机制python代码变更后须通过sudo supervisorctl restart all 重启服务,框架js代码(frappe/erpnext,最小化处理)变更后须执行 bench build 或 bench build --force, bench clear-cache,使代码变更生效
须通过 bench set-config 添加developer_mode参数,以便允许创建单据类型与自定义脚本报表综上对比,开发模式适用于代码开发调试,生产环境用于正式使用,更稳定,性能更高,安全性更好。