现在我需要在后台做一个在线更新的功能,如何实现,有没有轮子

现在我需要在后台做一个在线更新的功能,让客户的系统,可以通过后台的一个按钮,在线升级到最新版本,如何实现,有没有轮子

数据库字段维护怎么更新

如果涉及到composer呢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7
mouyong

如果你在 Laravel 里面使用,希望做到通过 composer 更新依赖,并且独立、模块化开发,可以考虑使用 laravel 里面的插件管理器: https://discuss.plugins-world.cn/post/9S19kdNL。

laravel 的插件使用:博客:给大家一个小惊喜,Laravel 插件,从 packagist.org 自动安装到项目...
fresns 下的插件使用:分享创造:Plugin Manager: 让 Laravel 应用更具组织性和可扩展性

5个月前 评论
wongvio (楼主) 5个月前
mouyong

效果长这样:

file

5个月前 评论
sanders

我的思路如下:

  1. 将代码打包到 docker 镜像中;
  2. 将迭代执行的脚本整理成 shell 脚本,并通过初始化容器安装运行;
  3. 应用容器依赖初始化容器启动。

其中的初始化容器在 docker compose 里面可以使用依赖关系进行控制,在 k8s 集群里面有专用的 init 容器进行控制。

集群里需要额外注意,一些升级脚本可能需要加分布式锁避免多实例同时运行。目前有很多持续部署方案开放API进行调用,最简单的可以开放一个服务去执行 shell 脚本来进行升级。

另外需要注意的是要控制好回滚,一般来说数据库只支持增加字段,不应该删除字段,升级前的数据备份往往也是自动化部署的一部分。

5个月前 评论
ononl 5个月前
sanders (作者) 5个月前

这个问题本身就是个难题,像你说的队列消费无法消费新的数据,这个即使在我们平时开发都会存在,像这种更新可以考虑停机更新,以及某个大版本是不支持回滚的,或者升级之前做好代码和数据库的备份。

5个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!