CN114942933A - 一种自动更新数据库的方法及相关装置 - Google Patents
一种自动更新数据库的方法及相关装置 Download PDFInfo
- Publication number
- CN114942933A CN114942933A CN202210391687.0A CN202210391687A CN114942933A CN 114942933 A CN114942933 A CN 114942933A CN 202210391687 A CN202210391687 A CN 202210391687A CN 114942933 A CN114942933 A CN 114942933A
- Authority
- CN
- China
- Prior art keywords
- data source
- component
- source information
- flyway
- banks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种自动更新数据库的方法及相关装置。可应用于大数据领域、移动互联领域、金融领域等领域。该方法中,通过多数据源切换组件获得多个银行对应的数据源信息;通过所述多数据源切换组件调用Flyway组件,并将所述多个银行对应的数据源信息发送给Flyway组件;根据自定义配置类通过所述Flyway组件调用并执行SQL脚本。其中,SQL脚本用于更新自定义配置类包含的数据源信息对应的数据库;自定义配置类为依据对数据库的更新需求编写而成。即便服务多实例多银行的银行系统、银行系统需要以多种数据库的更新为支撑,通过本申请技术方案也可以高度自动化地实现数据库更新,从而为开发人员和版本安装人员减轻负担。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种自动更新数据库的方法及相关装置。
背景技术
银行系统原有的针对单实例单银行的架构在进行数据库更新时,开发人员需要针对系统使用的oracle数据库维护SQL脚本,版本安装人员需要客户化数据库脚本安装工具的配置文件。在国产化、微服务、产品上云的大趋势下,银行系统需要满足一套应用版本支持多实例多银行的要求,并且使用的数据库不局限于oracle,如还使用mysql、tdsql等数据库。
在敏捷迭代开发的模式下,版本更新速度将大大加快,原有的数据库更新维护模式将大大增加开发人员和版本安装人员的工作量。开发人员需要针对新引入的数据库如mysql开发出脚本安装工具。版本安装人员也需要同时掌握和学习新迁移工具的使用和配置,需要消耗较多的人力。如何降低开发人员和版本安装人员的工作繁重程度,成为亟待解决的问题。
发明内容
基于上述问题,本申请提供了一种自动更新数据库的方法及相关装置,以降低银行系统的开发人员和版本安装人员的工作繁重程度。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种自动更新数据库的方法,包括:
通过多数据源切换组件获得多个银行对应的数据源信息;
通过所述多数据源切换组件调用Flyway组件,并将所述多个银行对应的数据源信息发送给Flyway组件;
根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库;所述自定义配置类为依据对数据库的更新需求编写而成。
可选的,所述根据自定义配置类通过所述Flyway组件调用并执行SQL脚本包括:
通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,如果是,则根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本,如果否,则通过所述Flyway组件获取新的自定义配置类。
可选的,所述通过多数据源切换组件获得多个银行对应的数据源信息,包括:
通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,获取所述多个银行对应的数据源信息。
可选的,在所述通过多数据源切换组件获得多个银行对应的数据源信息之前,所述方法还包括:
在工程的pom.xml文件中引入所述多数据源切换组件的依赖包和所述Flyway组件的依赖包。
可选的,所述工程的配置文件包括所述多个银行对应的数据源信息;所述通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,获取所述多个银行对应的数据源信息,具体包括:
通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,从所述配置文件中获取所述多个银行对应的数据源信息。
可选的,所述数据源信息至少包括:数据源名称,所述数据源名称为银行的标识数字;
所述自定义配置类包括:在所述自定义配置类中配置的数据源数量、数据源列表和脚本执行条件;所述数据源列表包括至少一个银行的数据源信息;
所述脚本执行条件包括:所述数据源列表中的至少一个数据源名称和针对所述至少一个数据源名称相应需要执行的SQL脚本的数据库类型。
可选的,所述SQL脚本包括:版本化脚本;在所述根据自定义配置类通过所述Flyway组件调用并执行SQL脚本之前,所述方法还包括:
在所述工程的资源文件夹中根据数据库类型和批次名称对版本化脚本进行存放。
可选的,所述自定义配置类具体为根据所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,以及所述Flyway组件提供的Java应用程序编程接口编写而成。
第二方面,本申请实施例提供了一种自动更新数据库的装置,包括:
数据源信息获取模块,用于通过多数据源切换组件获得多个银行对应的数据源信息;
组件调用模块,用于通过所述多数据源切换组件调用Flyway组件;
信息发送模块,用于通过所述多数据源切换组件将所述多个银行对应的数据源信息发送给Flyway组件;
数据库更新模块,用于根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库;所述自定义配置类对应于所述目标数据源信息,所述自定义配置类为依据对数据库的更新需求编写而成。
可选的,所述数据库更新模块包括:
判断单元,用于通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中;
执行单元,用于当所述Flyway组件确定所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中时,根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本;
获取单元,用于当所述Flyway组件确定所述自定义配置类与所述目标数据源信息不对应时,通过所述Flyway组件获取新的自定义配置类。
相较于现有技术,本申请具有以下有益效果:
本申请提供了一种自动更新数据库的方法和相关装置。在本申请中,通过多数据源切换组件获得多个银行对应的数据源信息;通过多数据源切换组件调用Flyway组件,并将多个银行对应的数据源信息发送给Flyway组件;根据自定义配置类通过Flyway组件调用并执行SQL脚本。其中,SQL脚本用于更新自定义配置类包含的数据源信息对应的数据库;自定义配置类为依据对数据库的更新需求编写而成。通过多数据源切换组件与Flyway组件的配合使用,简化了更新数据库时人工执行的工作。具体而言,多数据源切换组件为多个银行的数据库更新提供了丰富的数据源支持,Flyway组件则为自定义配置类提供了个性化的配置渠道。即便服务多实例多银行的银行系统,即便银行系统的应用程序新版本需要以多种数据库得更新为支撑,通过本申请技术方案也可以高度自动化地实现数据库更新,从而为开发人员和版本安装人员减轻人工操作负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种自动更新数据库的方法的流程图;
图2为本申请实施例提供的一种根据自定义配置类通过所述Flyway组件调用并执行SQL脚本的流程示意图;
图3为本申请实施例提供的一种数据库的自动更新装置的结构示意图;
图4为本申请实施例提供的一种数据库更新模块的结构示意图。
具体实施方式
正如前文描述,银行系统需要满足一套应用版本支持多实例多银行的要求,并且要求可以使用多种不同的数据库。例如,数据库不局限于oracle,如还使用mysql、tdsql等数据库。但是因应用版本更新速度快,对数据库的更新要求开发人员和版本安装人员完成大量的工作。减轻他们的工作繁重程度对于多实例多银行架构的应用开发和更新非常重要。
本申请的发明人经过研究,发明了一种自动更新数据库的方法及相关装置,可以满足一套应用版本支持多实例多银行的要求,并且可以使用多种数据库,高度自动化地实现数据库更新,从而为开发人员和版本安装人员减轻人工操作负担。
需要说明的是,本发明提供的自动更新数据库的方法及相关装置可用于大数据领域、移动互联领域、金融领域等领域。上述仅为示例,并不对本发明提供的自动更新数据库的方法及相关装置的应用领域进行限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
方法实施例
参见图1,该图为本申请实施例提供的一种自动更新数据库的方法的流程图。
本申请实施例提供的一种自动更新数据库的方法,例如可以通过如下步骤S101-S103实现。
S101:通过多数据源切换组件获得多个银行对应的数据源信息。
需要说明的是,本申请实施例不具体限定如何通过多数据源切换组件获得多个银行对应的数据源信息。作为一种示例,可以通过多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,获得多个银行对应的数据源信息。其他组件在调用该多数据源切换组件时,便可以通过在多数据源切换组件中配置获取多个银行对应的数据源信息的方法,获取多个银行对应的数据源信息。在可能的实现方式中,每一个银行对应一种数据源信息。数据源信息包括数据源名称,数据源名称可以通过数据源信息所对应的银行标识数字进行唯一的标识。例如,标识数字为101的银行,其对应的数据源信息中数据源名称为101;类似地,标识数字为102的银行,其对应的数据源信息中数据源名称为102。
本申请实施例还可以在通过多数据源切换组件获得多个银行对应的数据源信息之前,在工程的pom.xml文件中引入多数据源切换组件的依赖包和Flyway组件的依赖包。
需要说明的是,本申请实施例不具体限定引入多数据源切换组件的依赖包和Flyway组件的依赖包的方式。作为一种示例,可以通过以下代码描述的方式在工程的pom.xml文件中引入多数据源切换组件的依赖包:
作为一种示例,可以通过以下代码描述的方式在工程的pom.xml文件中引入Flyway组件的依赖包:
可以理解的是,所述工程的配置文件包含有多个银行对应的数据源信息。
需要说明的是,本申请实施例不具体限定通过多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,从何处获取多个银行对应的数据源信息。在本申请实施例的一种可能的实现方式中,可以从所述工程的配置文件中获取所述多个银行对应的数据源信息。
需要说明的是,本申请实施例不具体限定如何从所述工程的配置文件中获取所述多个银行对应的数据源信息。作为一种示例,可以在工程配置文件中配置好各银行的数据库配置,以便从所述工程的配置文件中获取所述多个银行对应的数据源信息。例如,在工程配置文件中,标识数字为101的银行对应mysql数据库,标识数字为102的银行对应tdsql。具体配置时,各银行的数据库可以是同类型的数据库,也可以是不同类型的数据库。
需要说明的是,本申请时实施例不具体限定如何在工程配置文件中配置各银行的数据库配置。作为一种示例,可以通过以下代码描述的方式实现在工程配置文件中配置各银行的数据库配置:
需要说明的是,本申请实施例不具体限定使用的数据库类型。作为一种示例,所使用的数据库可以包括oracle、mysql、tdsql等数据库。
S102:通过所述多数据源切换组件调用Flyway组件,并将所述多个银行对应的数据源信息发送给Flyway组件。
需要说明的是,Flyway是一个开源的数据库迁移工具,倾向于约定优于配置的方式。支持数据库版本的自动升级。Flyway提供了一个命令行工具和Java API,可以在应用程序启动时自动完成数据库脚本维护,同时Flyway支持目前绝大多数数据库,例如Oracle,Mysql,DB2等,同时Flyway在Spring Boot中已被完美集成,提供开箱即用的体验。
需要说明的是,本申请实施例不具体限定所述多数据源切换组件如何使所述Flyway组件获取所述多个银行对应的数据源信息。作为一种示例,多数据源切换组件可以通过以下方法使Flyway组件获取所述多个银行对应的数据源信息:
Map<String,DataSource>map=DynamicRoutingDataSource.getDataSourceMap();
通过调用Flyway组件,并将所述多个银行对应的数据源信息发送给Flyway组件,能够便于Flyway组件利用这些信息中的全部或者部分信息,并结合实际的数据库更新需求实现相应数据库的自动更新。
S103:根据自定义配置类通过所述Flyway组件调用并执行SQL脚本。
本申请实施例中所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库。
本申请实施例中所述自定义配置类为依据对数据库的更新需求编写而成。
需要说明的是,本申请实施例不具体限定如何根据自定义配置类通过Flyway组件调用并执行SQL脚本。作为一种示例,可以通过Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,如果包含在所述多个银行对应的数据源信息中,表示当前已获取的数据源信息能够满足更新需求,则根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本,如果不包含在所述多个银行对应的数据源信息中,表示当前已获取的数据源信息无法满足更新需求,则通过所述Flyway组件获取新的自定义配置类,并判断所述新的自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,重复以上步骤,直至最新的自定义配置类包含的数据源信息包含在所述多个银行对应的数据源信息中,则可以根据所述最新的自定义配置类通过所述Flyway组件调用并执行SQL脚本。
需要说明的是,本申请实施例不具体限定所述SQL脚本的存放路径。作为一种示例,当SQL脚本为版本化脚本时,所述SQL脚本在工程中存放的路径可以为:
resources/db/migration/{数据库类型}/{批次名称}/V*.sql
当SQL脚本为可重复脚本时,所述SQL脚本在工程中存放的路径可以为:
resources/db/migration/{数据库类型}/repeatable/R*.sql
需要说明的是,本申请实施例不具体限定自定义配置类所包含的内容。作为一种示例,自定义配置类可以包括:在所述自定义配置类中配置的数据源数量、数据源列表和脚本执行条件。
需要说明的是,本申请实施例不具体限定所述脚本执行条件。作为一种示例,脚本执行条件可以包括:数据源列表中的至少一个数据源名称和针对所述至少一个数据源名称相应需要执行的SQL脚本的数据库类型。
需要说明的是,版本的开发人员可以编写自定义配置类。本申请实施例不具体限定自定义配置类的获取方式。作为一种示例,版本的开发人员可以根据多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,以及所述Flyway组件提供的Java应用程序编程接口编写自定义配置类。所编写的配置类以及上述用于更新数据库的SQL脚本均满足Flyway组件的规定和标准。进而可以适用于Flyway组件的调用要求,以及通过Flyway组件和符合Flyway组件规则的SQL脚本的配合实现相应数据库的更新。
需要说明的是,本申请实施例不具体限定所述自定义配置类的内容。作为一种示例,所述自定义配置类的代码可以为:
结合上文代码的示例,自定义配置类包括的数据源数量通过ds_num表示,脚本执行条件为,若数据源名称为109,则执行oracle类型数据源的Flyway脚本,该脚本的存放路径为classpath:db/migration/oracle;而对于其他数据源名称,则执行tdsql类型数据源的Flyway脚本,该脚本的存放路径为classpath:db/migration/tdsql。
由此可见,利用本申请提供的方案,可以通过多数据源切换组件与Flyway组件的配合使用,简化了更新数据库时人工执行的工作。即便服务多实例多银行的银行系统,即便银行系统的应用程序新版本需要以多种数据库得更新为支撑,通过本申请技术方案也可以高度自动化地实现数据库更新,从而为开发人员和版本安装人员减轻人工操作负担。
在本申请实施例的一种可能的实现方式中,步骤S103中:根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,在具体实现时,可以通过如下步骤S201-S203实现。
参见图2所示为本申请实施例提供的一种根据自定义配置类通过所述Flyway组件调用并执行SQL脚本的流程示意图。
S201:通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,如果是,则进行步骤S203,如果否,则进行步骤S202。
可以理解的是,本申请实施例中上述步骤Flyway组件对于多个银行对应的数据源信息中是否包含有自定义配置类中包含的数据源信息进行判断,如果多个银行对应的数据源信息中包含有自定义配置类中包含的数据源信息,那么则进行步骤S203;如果多个银行对应的数据源信息中并未包含有自定义配置类中包含的数据源信息,那么则进行步骤S202.
S202:通过所述Flyway组件获取新的自定义配置类,之后重新进行步骤S201。
可以理解的是,在所述Flyway组件获取新的自定义配置类之后,进行步骤S201,此时步骤S201中的自定义配置类为步骤S202中确定的新的自定义配置类。
S203:根据自定义配置类通过所述Flyway组件调用并执行SQL脚本。
需要说明的是,在本申请实施例中,SQL脚本可以用于更新所述自定义配置类包含的数据源信息对应的数据库。
需要说明的是,在本申请实施例中,可以依据对数据库的更新需求编写自定义配置类。
由此可见,利用本申请实施例提供的根据自定义配置类通过所述Flyway组件调用并执行SQL脚本的方法,可以通过所述Flyway组件判断自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,如果自定义配置类包含的数据源信息并未包含在所述多个银行对应的数据源信息中,则通过所述Flyway组件获取新的自定义配置类;如果自定义配置类包含的数据源信息包含在所述多个银行对应的数据源信息中,则根据自定义配置类通过所述Flyway组件调用并执行SQL脚本。利用上述方法,实现了根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,从而可以利用SQL脚本对数据库进行自动更新,降低了开发人员和版本安装人员的工作繁重程度。
装置实施例
参见图3,该图为本申请实施例提供的一种数据库的自动更新装置的结构示意图。
本申请实施例提供的装置例如可以具体包括:数据源信息获取模块310、组件调用模块320、信息发送模块330、数据库更新模块340。
数据源信息获取模块310,用于通过多数据源切换组件获得多个银行对应的数据源信息;
组件调用模块320,用于通过所述多数据源切换组件调用Flyway组件;
信息发送模块330,用于通过所述多数据源切换组件将所述多个银行对应的数据源信息发送给Flyway组件;
数据库更新模块340,用于根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库;所述自定义配置类对应于所述目标数据源信息,所述自定义配置类为依据对数据库的更新需求编写而成。
参见图4,该图为本申请实施例提供的一种数据库更新模块的结构示意图。
可选的,数据库更新模块340例如可以具体包括:判断单元341、执行单元342、获取单元343。
判断单元341,用于通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中;
执行单元342,用于当所述Flyway组件确定所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中时,根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本;
获取单元343,用于当所述Flyway组件确定所述自定义配置类与所述目标数据源信息不对应时,通过所述Flyway组件获取新的自定义配置类。
可选的,数据源信息获取模块310例如可以具体包括:
方法获取单元,用于获取所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法;
获取单元,用于利用所述方法获取单元获取的方法,获取所述多个银行对应的数据源信息。
在具体的实施方式中,工程的配置文件可以包括所述多个银行对应的数据源信息,因此,获取单元可以利用所述方法获取单元获取的方法,从工程的配置文件中获取所述多个银行对应的数据源信息。
可选的,还可以增加引入模块,用于在工程的pom.xml文件中引入所述多数据源切换组件的依赖包和所述Flyway组件的依赖包。
在具体的实施方式中,数据源信息可以包括:数据源名称,所述数据源名称可以是银行的标识数字。
可选的,还可以增加存放模块,用于在工程的资源文件夹中根据数据库类型和批次名称对版本化脚本进行存放。
可选的,还可以增加自定义配置类编写模块,用于根据所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,以及所述Flyway组件提供的Java应用程序编程接口编写自定义配置类。
在具体的实施方式中,自定义配置类可以包括:在所述自定义配置类中配置的数据源数量、数据源列表和脚本执行条件;所述数据源列表包括至少一个银行的数据源信息;所述脚本执行条件可以包括:所述数据源列表中的至少一个数据源名称和针对所述至少一个数据源名称相应需要执行的SQL脚本的数据库类型。
由此可见,利用本申请实施例提供的数据库的自动更新装置,可以通过数据源信息获取模块获得多个银行对应的数据源信息;利用组件调用模块通过多数据源切换组件调用Flyway组件;通过信息发送模块将多个银行对应的数据源信息发送给Flyway组件;利用数据库更新模块执行SQL脚本对数据库进行更新。利用上述装置,实现了根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,从而可以利用SQL脚本对数据库进行自动更新,降低了开发人员和版本安装人员的工作繁重程度。
由于所述装置300是与以上方法实施例提供的方法对应的装置,因此,关于所述装置300的各个模块的具体实现,可以参考以上方法实施例的描述,此处不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种自动更新数据库的方法,其特征在于,包括:
通过多数据源切换组件获得多个银行对应的数据源信息;
通过所述多数据源切换组件调用Flyway组件,并将所述多个银行对应的数据源信息发送给Flyway组件;
根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库;所述自定义配置类为依据对数据库的更新需求编写而成。
2.根据权利要求1所述的方法,其特征在于,所述根据自定义配置类通过所述Flyway组件调用并执行SQL脚本包括:
通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中,如果是,则根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本,如果否,则通过所述Flyway组件获取新的自定义配置类。
3.根据权利要求1所述的方法,其特征在于,所述通过多数据源切换组件获得多个银行对应的数据源信息,包括:
通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,获取所述多个银行对应的数据源信息。
4.根据权利要求3所述的方法,其特征在于,在所述通过多数据源切换组件获得多个银行对应的数据源信息之前,所述方法还包括:
在工程的pom.xml文件中引入所述多数据源切换组件的依赖包和所述Flyway组件的依赖包。
5.根据权利要求4所述的方法,其特征在于,所述工程的配置文件包括所述多个银行对应的数据源信息;所述通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,获取所述多个银行对应的数据源信息,具体包括:
通过所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,从所述配置文件中获取所述多个银行对应的数据源信息。
6.根据权利要求5所述的方法,其特征在于,所述数据源信息至少包括:数据源名称,所述数据源名称为银行的标识数字;
所述自定义配置类包括:在所述自定义配置类中配置的数据源数量、数据源列表和脚本执行条件;所述数据源列表包括至少一个银行的数据源信息;
所述脚本执行条件包括:所述数据源列表中的至少一个数据源名称和针对所述至少一个数据源名称相应需要执行的SQL脚本的数据库类型。
7.根据权利要求6所述的方法,其特征在于,所述SQL脚本包括:版本化脚本;在所述根据自定义配置类通过所述Flyway组件调用并执行SQL脚本之前,所述方法还包括:
在所述工程的资源文件夹中根据数据库类型和批次名称对版本化脚本进行存放。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述自定义配置类具体为根据所述多数据源切换组件提供的获取所述多个银行对应的数据源信息的方法,以及所述Flyway组件提供的Java应用程序编程接口编写而成。
9.一种自动更新数据库的装置,其特征在于,包括:
数据源信息获取模块,用于通过多数据源切换组件获得多个银行对应的数据源信息;
组件调用模块,用于通过所述多数据源切换组件调用Flyway组件;
信息发送模块,用于通过所述多数据源切换组件将所述多个银行对应的数据源信息发送给Flyway组件;
数据库更新模块,用于根据自定义配置类通过所述Flyway组件调用并执行SQL脚本,所述SQL脚本用于更新所述自定义配置类包含的数据源信息对应的数据库;所述自定义配置类对应于所述目标数据源信息,所述自定义配置类为依据对数据库的更新需求编写而成。
10.根据权利要求9所述的装置,其特征在于,所述数据库更新模块包括:
判断单元,用于通过所述Flyway组件判断所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中;
执行单元,用于当所述Flyway组件确定所述自定义配置类包含的数据源信息是否包含在所述多个银行对应的数据源信息中时,根据所述自定义配置类通过所述Flyway组件调用并执行SQL脚本;
获取单元,用于当所述Flyway组件确定所述自定义配置类与所述目标数据源信息不对应时,通过所述Flyway组件获取新的自定义配置类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391687.0A CN114942933A (zh) | 2022-04-14 | 2022-04-14 | 一种自动更新数据库的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210391687.0A CN114942933A (zh) | 2022-04-14 | 2022-04-14 | 一种自动更新数据库的方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114942933A true CN114942933A (zh) | 2022-08-26 |
Family
ID=82906416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210391687.0A Pending CN114942933A (zh) | 2022-04-14 | 2022-04-14 | 一种自动更新数据库的方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114942933A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794416A (zh) * | 2023-02-02 | 2023-03-14 | 徐工汉云技术股份有限公司 | 基于Storm和Nacos的数据热切换方法和装置 |
CN117493378A (zh) * | 2024-01-03 | 2024-02-02 | 成都数之联科技股份有限公司 | 一种多数据源切换的方法及系统 |
-
2022
- 2022-04-14 CN CN202210391687.0A patent/CN114942933A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794416A (zh) * | 2023-02-02 | 2023-03-14 | 徐工汉云技术股份有限公司 | 基于Storm和Nacos的数据热切换方法和装置 |
CN115794416B (zh) * | 2023-02-02 | 2023-04-07 | 徐工汉云技术股份有限公司 | 基于Storm和Nacos的数据热切换方法和装置 |
CN117493378A (zh) * | 2024-01-03 | 2024-02-02 | 成都数之联科技股份有限公司 | 一种多数据源切换的方法及系统 |
CN117493378B (zh) * | 2024-01-03 | 2024-03-08 | 成都数之联科技股份有限公司 | 一种多数据源切换的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10922067B1 (en) | System and method for installing, updating and uninstalling applications | |
CN103955363B (zh) | 一种程序升级安装包的制作方法 | |
US7310801B2 (en) | Servicing a component-based software product throughout the software product lifecycle | |
CN114942933A (zh) | 一种自动更新数据库的方法及相关装置 | |
US5694540A (en) | Automated software regression test and compilation system | |
US9274811B1 (en) | System and method for cloud provisioning and application deployment | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
US20070006222A1 (en) | Software installation method and computer system | |
CN103984582A (zh) | 一种热更新方法和装置 | |
CN109032631B (zh) | 应用程序补丁包获取方法、装置、计算机设备及存储介质 | |
CN102156643A (zh) | 软件集成方法及系统 | |
CN107408046B (zh) | 用于跨异构计算环境供应云服务的系统和方法 | |
CN104133699B (zh) | 设备系统软件升级方法与系统 | |
CN111104151B (zh) | 一种基于Shell脚本的Git代码简化的管理方法 | |
US9542173B2 (en) | Dependency handling for software extensions | |
US10621524B2 (en) | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system | |
CN105159718A (zh) | 固件升级方法及装置 | |
US11544050B1 (en) | Software patch automation | |
CN116049207A (zh) | 应用程序sql脚本处理方法、装置、处理器及电子设备 | |
CN111142848A (zh) | 一种软件程序编译方法、执行方法及装置 | |
CN112817931B (zh) | 一种增量版本文件的生成方法及装置 | |
JP2018195046A (ja) | プログラム更新装置、プログラム更新方法、プログラム更新プログラム及びプログラム更新システム | |
US10621526B2 (en) | Exporting hierarchical data from a product lifecycle management (PLM) system to a source code management (SCM) system | |
CN107608698B (zh) | 一种命令行工具更新方法及装置 | |
CN111142923A (zh) | 一种补丁管理方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |