一种多模块数据库脚本初始化方法及装置制造方法及图纸

技术编号:39271306 阅读:9 留言:0更新日期:2023-11-07 10:50
本发明专利技术涉及脚本初始化领域,具体提供了一种多模块数据库脚本初始化方法及装置,统一约定Liquibase数据库初始化脚本存放位置,然后扫描依赖jar包下的数据库初始化脚本,手动构建并注册实例bean,最后在启动时调用各模块Liquibase实例bean执行依赖jar包下的数据库初始化脚本,实现数据库初始化操作。与现有技术相比,本发明专利技术减少手动管理数据库的效率低下和出错率高的问题,便于数据库版本的更替,降低了后续程序部署维护过程中的人力与时间成本。本。本。

【技术实现步骤摘要】
一种多模块数据库脚本初始化方法及装置


[0001]本专利技术涉及脚本初始化领域,具体提供一种多模块数据库脚本初始化方法及装置。

技术介绍

[0002]使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种问题:
[0003]不同方面的代码之间相互耦合,这时候一系统出现问题很难定位到问题的出现原因,即使定位到问题也很难修正问题,可能在修正问题的时候引入更多的问题。
[0004]多方面的代码集中在一个整体结构中,新入的开发者很难对整体项目有直观的感受,增加了新手介入开发的成本,需要有一个熟悉整个项目的开发者维护整个项目的结构(通常在项目较大且开发时间较长时这是很难做到的)。
[0005]开发者对自己或者他人负责的代码边界很模糊,这是复杂项目中最容易遇到的,导致的结果就是开发者很容易修改了他人负责的代码且代码负责人还不知道,责任追踪很麻烦。
[0006]将一个复杂项目拆分成多个模块是解决上述问题的一个重要方法,多模块的划分可以降低代码之间的耦合性(从类级别的耦合提升到jar包级别的耦合),每个模块都可以是自解释的(通过模块名或者模块文档),模块还规范了代码边界的划分,开发者很容易通过模块确定自己所负责的内容。
[0007]但是在进行多模块开发时,一个很重要的问题就是数据库初始化问题,不同模块负责不同的功能,需要设计不同的表数据结构以满足自身模块功能需求,我们希望在程序部署启动的时候能自动执行我们的数据库初始化脚本,Liquibase可以很好的帮我们实现这一点,但是在多模块下,Liquibase还不能帮我们自动找到模块jar中的数据库初始化脚本进行初始化操作。
[0008]如何解决上述问题是本领域技术人员亟待解决的问题。

技术实现思路

[0009]本专利技术是针对上述现有技术的不足,提供一种实用性强的多模块数据库脚本初始化方法。
[0010]本专利技术进一步的技术任务是提供一种设计合理,安全适用的多模块数据库脚本初始化装置。
[0011]本专利技术解决其技术问题所采用的技术方案是:
[0012]一种多模块数据库脚本初始化方法,其特征在于,统一约定Liquibase数据库初始化脚本存放位置,然后扫描依赖jar包下的数据库初始化脚本,手动构建并注册实例bean,最后在启动时调用各模块Liquibase实例bean执行依赖jar包下的数据库初始化脚本,实现
数据库初始化操作。
[0013]进一步的,具有如下步骤:
[0014]S1、脚本位置;
[0015]S2、扫描所有脚本;
[0016]S3、构建Liquibase实例bean;
[0017]S4、执行初始化。
[0018]进一步的,在步骤S1中,进一步包括:
[0019]S101、脚本路径约定;
[0020]S102、脚本名称约定。
[0021]进一步的,在步骤S101中,约定脚本所在路径,遍历指定路径,缩短查找脚本时间;
[0022]在步骤S102中,约定脚本名称,脚本名称必须进行约定,否则无法通过名称查找脚本。
[0023]进一步的,在步骤S2中,通过loadkit或者其他工具包对加载器内jar进行遍历扫描出约定格式的脚本文件,对脚本必要信息进行缓存,保存数据库初始化脚本所属模块名、脚本路径及要注册的bean名称。
[0024]进一步的,在步骤S3中,扫描出所有初始化脚本后,需要为每个初始化脚本注册Liquibase实例bean,要特别注意注册bean时的顺序,保证在执行初始化之前完成bean的注册及实例化;
[0025]而且在注册bean时要设置Liquibase属性changelog为缓存的脚本路径,设置属性shouldRun为false,保证脚本不被其他程序执行。
[0026]进一步的,在步骤S4中,从bean管理器中获取注册的Liquibase实例bean,在执行前需要为Liquibase实例bean设置数据源,并将shouldRun为true,然后调用Liquibase所提供的afterPropertiesSet方法进行数据库初始化脚本执行操作。
[0027]一种多模块数据库脚本初始化装置,包括:至少一个存储器和至少一个处理器;
[0028]所述至少一个存储器,用于存储机器可读程序;
[0029]所述至少一个处理器,用于调用所述机器可读程序,执行一种多模块数据库脚本初始化方法。
[0030]本专利技术的一种多模块数据库脚本初始化方法及装置和现有技术相比,具有以下突出的有益效果:
[0031]本专利技术使Liquibase支持扫描依赖jar下的数据库初始化脚本并执行初始化操作,极大降低了多模块开发时模块数据库脚本之间耦合性,各模块只需专注维护好自己的数据库初始化脚本,然后后续进行集成时可自动进行扫描并初始化,减少手动管理数据库的效率低下和出错率高的问题,便于数据库版本的更替,降低了后续程序部署维护过程中的人力与时间成本。
附图说明
[0032]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
[0033]附图1是一种多模块数据库脚本初始化方法的流程示意图。
具体实施方式
[0034]为了使本
的人员更好的理解本专利技术的方案,下面结合具体的实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本专利技术保护的范围。
[0035]下面给出一个最佳
[0036]如图1所示,本实施例中的一种多模块数据库脚本初始化方法,统一约定Liquibase数据库初始化脚本存放位置(如:classpath:/liquibase/[模块名]/db.changelog

master.xml),然后扫描依赖jar包下的数据库初始化脚本,手动构建并注册实例bean,最后在启动时调用各模块Liquibase实例bean执行依赖jar包下的数据库初始化脚本,实现数据库初始化操作。
[0037]具有如下步骤:
[0038]S1、脚本位置;
[0039]为了方便查找jar包下的脚本,需要对脚本位置进行约定。
[0040]进一步包括:
[0041]S101、脚本路径约定。约定脚本所在路径,如:classpath:/liquibase/[模块名],约定脚本路径是为了遍历指定路径,缩短查找脚本时间,也可以不做约定。
[0042本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多模块数据库脚本初始化方法,其特征在于,统一约定Liquibase数据库初始化脚本存放位置,然后扫描依赖jar包下的数据库初始化脚本,手动构建并注册实例bean,最后在启动时调用各模块Liquibase实例bean执行依赖jar包下的数据库初始化脚本,实现数据库初始化操作。2.根据权利要求1所述的一种多模块数据库脚本初始化方法,其特征在于,具有如下步骤:S1、脚本位置;S2、扫描所有脚本;S3、构建Liquibase实例bean;S4、执行初始化。3.根据权利要求2所述的一种多模块数据库脚本初始化方法,其特征在于,在步骤S1中,进一步包括:S101、脚本路径约定;S102、脚本名称约定。4.根据权利要求3所述的一种多模块数据库脚本初始化方法,其特征在于,在步骤S101中,约定脚本所在路径,遍历指定路径,缩短查找脚本时间;在步骤S102中,约定脚本名称,脚本名称必须进行约定,否则无法通过名称查找脚本。5.根据权利要求4所述的一种多模块数据库脚本初始化方法,其特征在于,在步骤S2中,通过loadkit或者其他工具包对加载器内jar进行遍历扫描出约定格式的脚本文件,对脚本必要信息进行缓存,保存...

【专利技术属性】
技术研发人员:田浩路国隋
申请(专利权)人:浪潮软件科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1