如何升级 PHP 项目(类似 cms)?

2022-06-07 12:37:29 +08:00
 ixixi

我们做的商业软件,整体来说就是增删改查,数据库表也不复杂大约十张,目前想重构,面临几个问题

1.给客户安装之后,需要定期的在线升级 2.升级表结构

这部分有两个问题 php 没有打包,升级文件会巨多不太方便,能不能把 php 像前端一样打包一下 升级表结构也不太好整 数据库如果改成 sqlite 是不是会更好一些,旧数据用 mysql

有无可参考开源的解决方案呢 ?

1325 次点击
所在节点    程序员
6 条回复
mrpzx001
2022-06-07 13:12:14 +08:00
php 有打包,phar
xiaojj
2022-06-07 13:15:07 +08:00
参考一下各类 cms 的后台更新功能,直接下载压缩包,解压出来就可以了
升级的时候运行一下新版本的升级代码,更新表结构
sqlite 升级表结构比 mysql 麻烦
msg7086
2022-06-08 06:02:23 +08:00
升级表结构,找支持 db migration 的数据库抽象层。
升级文件多这个没办法,自己写一个升级器?应该也不难的。
jazzg62
2022-06-08 08:27:50 +08:00
我之前写了个脚本,可以根据 git 的 changes 来复制项目中所有改动的文件。这样就可以直接把更新的文件压缩,然后复制到客户电脑上解压就好了。项目中原有的目录结构我也保留了,所以可以直接覆盖。
表结构的话,你应该要自己来写升级代码了。
如果需要的话,我把脚本发你试试,希望能给你带来一点帮助
wowbaby
2022-06-08 10:52:59 +08:00
git ,类似 cms 那种更新不安全,生产环境执行程序不应有写入权限,
815979670
2022-06-08 13:12:42 +08:00
写一个脚本 依赖 git 将更新文件打包,然后这个升级包中包含更新文件和校验(防止包下载不完整 或被第三方篡改),在系统中再做一个升级的逻辑,自动下载更新包进行校验和解压覆盖。
如果包含数据库的变更 可以在升级之后执行数据库迁移命令

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/857862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX