Skip to content

升级业务应用

版本

升级之前需要先确定旧版本和升级的新版本,如果初次安装是已有项目集成的方式,还需要先升级koca版本,保持koca版本与业务客户端版本相同

当前文档版本为:5.0.1,升级时注意保证数据库脚本、后端接口、前端页面的版本是一一对应的,即要么都升级要么都不升级,否则可能导致应用异常

准备

下载升级压缩包

解压下载的压缩包:unzip lcp-standalone.zip,得到的目录结构如下:

./
├── db ---数据库脚本
├── lcp-runtime-bootapp ---后端文件
├── lcp-runtime-web ---前端初始化脚本
└── nginx-config ---nginx配置文件
./
├── db ---数据库脚本
├── lcp-runtime-bootapp ---后端文件
├── lcp-runtime-web ---前端初始化脚本
└── nginx-config ---nginx配置文件

后续升级过程中,如无单独说明,均为以此目录作为工作目录,如果涉及命令,则默认为Linux命令

关闭旧版本

进入旧版本业务客户端安装目录,关闭旧版本进程(如果首次安装是已有项目集成,则按业务系统原有方式关闭后端服务)

  • 关闭后端服务
    1. linux执行:sh bin/shutdown.sh
    2. windows执行:双击文件bin/shutdown.bat

备份

进入旧版本业务客户端目录,完整备份旧版本:例如,假设旧版本安装目录为

  • 后端:/opt/application/lcp-standalone
  • 前端:/opt/application/lcp-web

则备份命令为(x.x.x代表旧版本号):

  • 后端:cp -rf /opt/application/lcp-standalone /opt/application/lcp-standalone-x.x.x-bak
  • 前端:cp -rf /opt/application/lcp-web /opt/application/lcp-web-x.x.x-bak

数据库升级

如果初次安装是通过flyway工具完成的数据库初始化,只需要在新版本中按相同步骤再次执行flyway脚本工具即可完成升级(参考flyway执行

如果初次安装是通过手动执行方式初始化的,则需要继续下面的步骤:

  • 根据项目的数据库类型,进入对应的增量脚本目录,这里以 oracle 为例:db/oracle
  • 此目录下模块说明参考初始化数据库,每个模块的sql目录结构类似:
    xxx --- 模块名称
    ├── table --- 表结构相关的sql脚本
    |  ├── all --- 全量脚本
    |  └── update --- 增量脚本
    └── data --- 初始化数据相关的sql脚本
       ├── all --- 全量脚本
       └── update --- 增量脚本
    xxx --- 模块名称
    ├── table --- 表结构相关的sql脚本
    |  ├── all --- 全量脚本
    |  └── update --- 增量脚本
    └── data --- 初始化数据相关的sql脚本
       ├── all --- 全量脚本
       └── update --- 增量脚本

执行方式一

  • 依次进入模块的增量脚本目录:选择大于旧版本、小于等于新版本的目录
  • 按照版本号从低到高、先表结构后表数据、模块排序的顺序依次执行脚本(也可以先将所有需要执行的增量脚本拷贝到一个目录,按文件名升序的顺序依次执行)

执行方式二:先借助工具将多个模块的sql合并为一个,再执行

  • 进入sql合并工具目录:cd db/sqlmigrate
  • 执行sql合并:java -jar sql-migrate.jar -f x.x.x -c update-migrate.conf,参数解释以及可能需要参数如下:
    • -f x.x.x: 代表旧版本号,必须指定,不指定会收集所有增量脚本,导致后续升级脚本执行失败
    • -d oracle: 代表数据库类型,支持mssql/mysql/oracle/postgresql,不写默认oracle
    • -t x.x.x: 代表新版本号,不写默认当前版本,参考版本
    • -m admin.*,lcp-runtime.*: 如果项目是已有项目集成的,并且部分模块已经采用项目已有方式升级过,则需要通过这个参数指定需要的模块
  • 执行完成后,得到全量sql文件:update.sql
  • 在数据库中执行:update.sql脚本即可

后端升级

升级

进入旧版本业务客户端后端项目源码目录(默认情况下在:旧版本zip包目录/lcp-standalone/lcp-runtime-bootapp):

修改 pom 依赖的版本号:pom.xml

需要修改两处:koca版本和业务客户端版本,部分配置参考如下:

xml
<parent>
  <groupId>com.szkingdom.koca.parent</groupId>
  <artifactId>koca-parent</artifactId>
  <!-- koca版本,与新版本保持一致 -->
  <version>x.x.x</version>
  <relativePath></relativePath>
</parent>

<properties>
  <!-- 业务客户端版本,修改为新版本 -->
  <lcp.version>x.x.x</lcp.version>
</properties>

<dependencies>
  <dependency>
      <groupId>com.szkingdom.koca.lcp</groupId>
      <artifactId>lcp-runtime-agent-starter</artifactId>
      <version>${lcp.version}</version>
  </dependency>
</dependencies>
<parent>
  <groupId>com.szkingdom.koca.parent</groupId>
  <artifactId>koca-parent</artifactId>
  <!-- koca版本,与新版本保持一致 -->
  <version>x.x.x</version>
  <relativePath></relativePath>
</parent>

<properties>
  <!-- 业务客户端版本,修改为新版本 -->
  <lcp.version>x.x.x</lcp.version>
</properties>

<dependencies>
  <dependency>
      <groupId>com.szkingdom.koca.lcp</groupId>
      <artifactId>lcp-runtime-agent-starter</artifactId>
      <version>${lcp.version}</version>
  </dependency>
</dependencies>

编译运行

进入旧版本业务客户端后端项目源码目录(默认情况下在:旧版本zip包目录/lcp-standalone/lcp-runtime-bootapp):

  • maven 打包:mvn clean package,生成打包文件

  • 解压打包文件:tar -xvf target/lcp-runtime-bootapp-x.x.x-bin.tar.gz

  • 进入解压后得到的目录:cd lcp-runtime-bootapp-x.x.x,运行:

    1. linux 环境:sh ./bin/startup.sh
    2. window 环境:双击文件bin/startup.bat
  • 打开日志文件:tail -f -n 1000 logs/lcp-biz.log(其中-n 1000选项代表行数),当日志中打印started on port(s): 8098字样表示正常启动

  • 执行:jps命令,可以找到名称类似lcp-runtime-bootapp-x.x.x-assembly.jar的 Java 进程

前端升级

升级

进入旧版本业务客户端前端项目源码目录(默认情况下在:旧版本zip包目录/lcp-standalone/lcp-runtime-web/lcp-web):

执行:kc update,一次只能选择一个模块,有多个模块需要升级,所以这个命令需多次执行,具体模块如下:

  • admin-basic

  • admin-file-manage

  • admin-report

  • lcp-runtime-model

  • lcp-runtime-component

  • lcp-runtime-page

  • lcp-runtime-api

  • lcp-workflow

    选择模块: img.png

    选择版本(注意版本选择与新版本保持一致,参考版本): img.png

如果上面列举的模块不在升级列表中,则需要添加模块,进入已有的前端项目,执行:kc add

  • 选择没有的模块: 选择模块

  • 版本选择(注意版本选择与新版本保持一致,参考版本): 选择版本

安装打包

进入旧版本前端项目目录

  • 安装:pnpm install

  • 打包:pnpm build(此过程可能需要十几分钟)

  • 打包完成后会在当前工程目录下生成打包文件:dist

  • 完成(由于是基于旧工程做升级,后续过程沿用旧版本即可,无需其它操作)

验证

业务客户端升级完成后,就可以在 lcp-app 中添加并使用了,参考创建应用