本文适用于无法通过后台「系统更新中心」完成在线升级,需要使用官方离线更新包手工升级 DBErp 的场景。
离线升级包下载地址:点击查看
升级前请务必完整备份当前站点程序和数据库,并确认备份可用。
一、解压更新包
将官方离线更新包解压到临时目录。
不要直接解压到正在运行的 DBErp 网站目录。
后续再将更新包中的程序文件覆盖到当前站点。
二、进入维护模式
在 DBErp 网站根目录执行:
php artisan down
三、覆盖程序文件
将更新包中的 DBErp 宿主程序文件覆盖到网站根目录。
通常包括:
app/
bootstrap/
config/
database/migrations/
lang/
public/
resources/
routes/
以及更新包中存在的根目录程序文件,例如:
artisan
composer.json
composer.lock
以下内容不要覆盖或删除
.env
storage/
public/storage
plugins/
其中:
-
.env保留当前站点配置; -
storage/保留运行数据、日志及相关文件; -
public/storage保持现有状态; -
plugins/为当前已安装插件,不应通过宿主更新包整体覆盖。
四、处理 vendor
如果更新包中包含:
vendor.bundle.zip
则先备份当前:
vendor/
然后将 vendor.bundle.zip 解压得到的新 vendor/ 整体替换当前站点的 vendor/。
确认最终存在:
vendor/autoload.php
如果更新包中没有 vendor.bundle.zip,则保留当前 vendor/。
普通离线升级过程中不要自行执行:
composer update
也不要自行重新安装依赖。
五、删除废弃文件
如果当前版本升级说明中明确列出了需要删除的旧文件,则按清单删除。
如果没有废弃文件清单,直接跳过。
不要自行扩大删除范围。
六、执行数据库升级
在网站根目录执行:
php artisan migrate --force --no-interaction
迁移成功后执行:
php artisan optimize:clear
如果数据库迁移失败,不要继续修改版本号,也不要恢复网站访问。
应先排查错误;如果无法解决,使用升级前的程序和数据库备份完整回退。
七、更新版本号
确认数据库升级成功后,打开本次离线更新包中的:
manifest.json
找到:
"to_version": "3.0.3",
"to_update_version": 300030
然后修改网站根目录 .env 中对应的版本信息:
DBERP_DISPLAY_VERSION="3.0.3"
DBERP_UPDATE_VERSION=300030
对应关系为:
to_version → DBERP_DISPLAY_VERSION
to_update_version → DBERP_UPDATE_VERSION
请直接使用本次离线更新包 manifest.json 中的值,不要自行推算或修改版本号。
除这两项外,不要修改 .env 中其他配置。
修改完成后再次执行:
php artisan optimize:clear
八、恢复网站
执行:
php artisan up
九、检查升级结果
升级完成后,建议确认以下内容:
-
系统信息中的版本号已经更新;
-
后台可以正常登录;
-
商品、库存、采购、销售、结算等主要功能可以正常打开;
-
已安装插件仍然存在并可以正常使用;
-
原有附件和上传文件正常;
-
系统日志中没有持续出现新的异常。
确认运行正常后,再清理本次升级产生的临时文件和 vendor 备份。
十、升级失败回退
如果升级失败:
-
保持网站维护状态;
-
恢复升级前的完整站点程序;
-
恢复升级前的数据库备份;
-
执行:
php artisan optimize:clear
php artisan up
程序和数据库应恢复到同一个升级前状态。
注意事项
离线升级时请特别注意:
-
升级前必须备份站点和数据库;
-
不要直接把更新包解压到生产网站目录;
-
不要覆盖
.env; -
不要删除
storage/; -
不要覆盖
public/storage; -
不要整体覆盖
plugins/; -
不要执行
composer update; -
不要执行
migrate:fresh、migrate:refresh、db:wipe等清库命令; -
有
vendor.bundle.zip时整份替换vendor/; -
数据库迁移成功后再更新 DBErp 版本号;
-
版本号以离线更新包中的
manifest.json为准; -
升级失败时程序和数据库一起回退。
标准升级流程
备份站点和数据库
→ 解压更新包
→ 进入维护模式
→ 覆盖宿主程序
→ 处理 vendor
→ 删除废弃文件
→ 执行数据库迁移
→ 清理缓存
→ 根据 manifest.json 更新版本号
→ 恢复网站
→ 检查升级结果