启动jar包指定数据库连接
启动jar包指定数据库连接
这个实验源于自己的一个好奇心。。。
之前写有文章:jenkins指定库连接,当时我领导以为切换数据库连接就是一个命令的事,“加一,切库”,手起刀落,然后我告诉他jenkins切换库的逻辑:从gitlab拉代码,替换数据库连接文件,maven编译,再发布到远程机器。可能那会比较大声,整个办公室仅弥漫着我跟领导的“呼应”,坐我对面懂点运维的开发,小小声给我回了句:其实可以不用那么麻烦,直接指定配置文件,不需要重新编译。
为了验证下是不是真的,今天忙完别的事特意测了下~~
参考链接:https://www.jb51.net/article/197938.htm
一、测试准备
话说公司内网有个快码猿开发的应用:一个简单的资产管理系统,是个jar包跑的,刚好最大化模仿之前的场景进行测试。
我特意解刨了jar包,然后在 BOOT-INF/classes/ 目录下有个 application.yml,里面有连接的数据库配置信息:yhwl_devops
navicat连该库,找到一个好辨认的表:propertytype
刚好跟页面”资产类型管理“对应了:
二、正式测试
1、mysql新建测试库:ljytest_20220406
2、把源库yhwl_devops 数据导出来,导入到我这个测试库里,插入一条测试数据,如下:
3、复制application.yml,修改成连接测试数据库
cp BOOT-INF/classes/application.yml /tmp/ljytest/application.yml
4、启动jar包:
java -jar /root/devops-1.1.jar --spring.config.location=/tmp/ljytest/application.yml
看看多了最后一条记录,代表修改数据库连接是成功的。
恩,确实是没有骗我~~
三、实验总结
如果简单的修改jar包运行的数据库连接,且并非经常需要修改,确实启动jar包直接指定想读的配置文件是比较好的,也就是本文测试的方法;但是如果还要做更复杂的操作,例如改库连接之前要备份库数据,个人觉得还是用jenkins去弄比较好。
另外一个弄成jenkins的原因是为了节省运维人员的时间吧,想想测试人员一声令下就让改库连接,得先停掉原服务,指定跑起来。。。还不如做成这种让其自主选择去点发布进而改库连接,毕竟这样改来改去,做多了烦不单只,也容易出错,牺牲点时间等代码编译时间,其实也是值得的。