一、数据库迁移
五矿的数据库为vastBase(海量数据库)、属于华为openGauss数据库的一个商业版本,内核是postgresql,与postgresql完全兼容。
1、数据库驱动,采用postgresql的驱动进行访问。
maven坐标:
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.5</version> <scope>runtime</scope> </dependency> |
Jdbc连接串:jdbc:postgresql://10.53.136.17:5432/postgres?currentSchema=bzj
其中postgres为数据库实例名,只有一个,bzj为数据库名,一般跟用户名对应。
2、关键字,user是postgresql的关键字,不能用于表名或字段名,其他关键字有。。。
3、大小写问题,postgresql表名和字段默认不区分大小写,为减少因大小写产生的问题,mysql导出建表脚本时,一定不要在表名、字段名上用双引号或符号反写的单引号`。如果有,先全局替换掉,再建表。
4、Limit兼容问题,postgresql使用offset x limit y语法,等价于mysql的limit x,y语法,涉及到的语句必须修改
5、事务问题,忽略插入问题,postgresql插入忽略重复记录不能在业务代码里处理,可以使用postgresql自带的插入忽略语法(前提是当前应用不需要同时兼容mysql和postgresql)。
Insert into .... ON CONFLICT DO NOTHING(推荐)
6、数据迁移,分两步执行,第一步,先建表结构;第二步再同步数据。建表有问题,先调整建表脚本,全部建表无误后,再同步数据。可以验证看navicat是否支持一步同步表和数据??。
二、应用打包
1、所有应用打包为容器镜像进行部署,中间件像RocketMQ、Nacos等可以直接按应用进行部署。
2、应用打包可以在10.53.145.33这台机器上进行,构建镜像的方式与烟草一样,通过脚本进行镜像构建,构建的镜像会上传到阿里云的镜像仓库。
镜像仓库信息:
1). 登录阿里云Docker Registry
$ docker login --username=dingtalk_lkpnxz crpi-nb99e26g8022bdad.cn-beijing.personal.cr.aliyuncs.com
访问密码为Zzlh1234
2). 从Registry中拉取镜像
$ docker pull crpi-nb99e26g8022bdad.cn-beijing.personal.cr.aliyuncs.com/zzlh/[镜像名]:[镜像版本号]
构建脚本调用方式为,进入你的本地代码的服务目录下,如果一个代码仓库包含了多个服务,请进入相应的目录下,比如中台应用有用户中心data-center/user,有data-center/ca,则进入相应的子目录下,执行如下命令
smart-build-xxx.sh [服务名] [版本] notify-no |
xxx是对应后端和前端应用的,请选择相应的脚本来执行,脚本清单如下
脚本 |
说明 |
smart-build.sh |
后端应用打包脚本 |
smart-build-node.sh |
node应用打包脚本 |
smart-build-html.sh |
静态html打包脚本 |
smart-build-frontend.sh |
前端vue应用打包脚本 |
smart-build-frontend-10.sh |
前端vue应用打包脚本,使用node v10 |
ycnpm |
npm命令,使用淘宝镜像仓库 |
ycmvn |
maven命令,连接阿里云私库 |
ycnpm10 |
npm命令,node V10版本,使用淘宝镜像仓库 |
ycnpm16 |
npm命令,node V16版本,使用淘宝镜像仓库 |
|
|
3、运行应用,请使用docker run拉取镜像运行,确保应用配置已经修改连接nacos,如果没有的话,建议挂载应用配置到/data/appdata/应用名/目录下,以下是一个运行例子
#先停止应用
docker stop bzj
#等待5秒让应用退出
sleep 5
#启动应用,并设置容器名称,这个脚本将/data/appdata和/data/applogs目录分别挂载到容器里,-p执行宿主机端口和容器内应用端口的映射,-e传入环境变量,--add-host设置容器host映射
docker run --rm --name bzj -d \
-v /data/appdata:/data/appdata \
-v /data/applogs:/data/applogs \
-u 1000:1000 \
-p 8888:8888 \
-p 9999:9999 \
-p 52200:52200 \
-p 30006:30006 \
-p 51080:51080 \
-p 58080:58080 \
-e ENV=test \
-e JAVA_OPTS="-Xmx1024M -Dmanager.key=bbb" \
-e LANG=zh_CN.UTF-8 \
-e LC_ALL=zh_CN.UTF-8 \
--add-host test1:172.16.1.32 \
--add-host b2bichost.365trade:172.16.1.32 \
--add-host apipcs3.dccnet.com.cn:172.16.1.32 \
--add-host zzgjtest:172.16.1.32 \
--add-host stage:172.16.1.33 \
zzlh/bzj