V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ixixi
V2EX  ›  程序员

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

  •  
  •   ixixi · Jun 7, 2022 · 1828 views
    This topic created in 1422 days ago, the information mentioned may be changed or developed.

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

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

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

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

    6 replies    2022-06-08 13:12:42 +08:00
    mrpzx001
        1
    mrpzx001  
       Jun 7, 2022
    php 有打包,phar
    xiaojj
        2
    xiaojj  
       Jun 7, 2022
    参考一下各类 cms 的后台更新功能,直接下载压缩包,解压出来就可以了
    升级的时候运行一下新版本的升级代码,更新表结构
    sqlite 升级表结构比 mysql 麻烦
    msg7086
        3
    msg7086  
       Jun 8, 2022 via Android
    升级表结构,找支持 db migration 的数据库抽象层。
    升级文件多这个没办法,自己写一个升级器?应该也不难的。
    jazzg62
        4
    jazzg62  
       Jun 8, 2022
    我之前写了个脚本,可以根据 git 的 changes 来复制项目中所有改动的文件。这样就可以直接把更新的文件压缩,然后复制到客户电脑上解压就好了。项目中原有的目录结构我也保留了,所以可以直接覆盖。
    表结构的话,你应该要自己来写升级代码了。
    如果需要的话,我把脚本发你试试,希望能给你带来一点帮助
    wowbaby
        5
    wowbaby  
       Jun 8, 2022
    git ,类似 cms 那种更新不安全,生产环境执行程序不应有写入权限,
    815979670
        6
    815979670  
       Jun 8, 2022
    写一个脚本 依赖 git 将更新文件打包,然后这个升级包中包含更新文件和校验(防止包下载不完整 或被第三方篡改),在系统中再做一个升级的逻辑,自动下载更新包进行校验和解压覆盖。
    如果包含数据库的变更 可以在升级之后执行数据库迁移命令
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2981 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:53 · PVG 22:53 · LAX 07:53 · JFK 10:53
    ♥ Do have faith in what you're doing.