CN114238266A - 基于流水线平台的数据库部署方法、装置和计算机设备 - Google Patents

基于流水线平台的数据库部署方法、装置和计算机设备 Download PDF

Info

Publication number
CN114238266A
CN114238266A CN202111360729.6A CN202111360729A CN114238266A CN 114238266 A CN114238266 A CN 114238266A CN 202111360729 A CN202111360729 A CN 202111360729A CN 114238266 A CN114238266 A CN 114238266A
Authority
CN
China
Prior art keywords
database
script
execution
deployment
configuration file
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
Application number
CN202111360729.6A
Other languages
English (en)
Inventor
梁爽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Pudong Development Bank Co Ltd
Original Assignee
Shanghai Pudong Development Bank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Pudong Development Bank Co Ltd filed Critical Shanghai Pudong Development Bank Co Ltd
Priority to CN202111360729.6A priority Critical patent/CN114238266A/zh
Publication of CN114238266A publication Critical patent/CN114238266A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于流水线平台的数据库部署方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过检查后,将功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。采用本方法能够简化数据库的部署流程,提高了数据库部署效率。

Description

基于流水线平台的数据库部署方法、装置和计算机设备
技术领域
本申请涉及数据库部署技术领域,特别是涉及一种基于流水线平台的数据库部署方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
数据库是依照某种数据模型组织起来并存放在存储器中的数据集合。由于数据库具有多用户共享的特点,能为业务提供数据支撑,因此数据库在业务系统的应用非常普遍。出于数据可靠性的考虑,数据库一般设置在独立的服务器上。
在现有的数据库部署方法中,通常在用户提出创建数据库的申请之后,由数据库管理员在业务系统中创建数据库。
由于创建数据库的过程需要很多步骤,人工配置效率非常低。当数据库架构的复杂程度增加时,创建数据库所花费的时间也随之增加,导致数据库持续部署的效率低且回滚耗时长。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据库持续部署效率并降低数据库回滚耗时的基于流水线平台的数据库部署方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于流水线平台的数据库部署方法。所述方法包括:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
在其中一个实施例中,所述根据检测结果对数据库进行部署包括:
若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;
若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
在其中一个实施例中,所述从最近一次执行的数据库脚本开始读取执行新的数据库脚本包括:
在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
在其中一个实施例中,所述基于流水线平台的数据库部署方法还包括:
在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;
将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;
当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;
当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
在其中一个实施例中,所述当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录包括:
当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;
根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;
执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
在其中一个实施例中,所述当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录包括:
当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;
根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;
执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
第二方面,本申请还提供了一种基于流水线平台的数据库部署装置。所述装置包括:
构建模块,用于创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
连接模块,用于通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
部署模块,用于在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
上述基于流水线平台的数据库部署方法、装置、计算机设备、存储介质和计算机程序产品,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
附图说明
图1为一个实施例中基于流水线平台的数据库部署方法的应用环境图;
图2为一个实施例中基于流水线平台的数据库部署方法的流程示意图;
图3为一个实施例中基于流水线平台进行部署步骤的流程示意图;
图4为一个实施例中基于流水线平台的数据库回滚的流程示意图;
图5为一个实施例中基于流水线平台的数据库部署装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于流水线平台的数据库部署方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于流水线平台的数据库部署方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建。
其中,功能分支由开发人员基于需求创建,按照数据库规范提交相关数据库脚本、数据库部署配置文件及对应代码,由相关审阅者对数据库升级脚本和数据库执行配置文件进行评审,同意合并或提供改进意见。需要修改的由开发人员根据审阅者改进意见修复或提交补丁脚本,流水线平台更新拉取请求状态,由审阅者再次审核,重复修改直到审核人员同意合并。审核人员主要对拉取请求的代码改动进行文件名,DDL、DML等合规性检查和配置文件正确性检查,该阶段可引入自动化SQL脚本检查工具以校验SQL的合法性和安全性。在所有检查通过后,SQL脚本改动将会被合并到测试分支或发布分支。由测试人员手动触发流水线,启动测试环境数据库自动部署,先部署数据库再部署应用。在通过相关集成测试、用户测试等测试后,对要上生成的脚本进行再次的风险评估,对SQL中高危操作进行高危评估,后先手动触发生产环境数据部署,确认无误后触发生产环境应用部署。
本方案主要分为SQL同代码管理和SQL单独管理两种情况。在SQL同代码管理时,SQL和数据库执行配置文件存放在指定代码库文件夹统一管理,流水线中使用单一发布流水线,其中数据库部署和应用部署在不同阶段,其间根据需求添加相关审核和门禁,实现流程把控及保证数据库安全性。虽然无新SQL时不会发生数据库变更,但两者强关联,数据库执行程序会根据库里的执行记录表来确定是否执行SQL。在SQL单独管理时,SQL库使用单独代码库管理,其中数据库部署和应用部署在不同数据库,一旦SQL库发生变化(SQL库无变化不触发),先触发数据库部署流水线后再手动触发应用部署的相关流水线,两者没有强关联,但部署顺序固定,先部署数据库再部署应用。
具体地,图3为一个实施例中基于流水线平台进行部署步骤的流程示意图,如图3所示,本实施例中用户所有操作输入均通过流水线平台,流水线负责集成整个数据库部署流程控制管理和介质下发。代码和SQL脚本及数据库部署配置文件通过拉取指令提交到流水线平台,通过拉取请求由审核人员在评审通过后合并到发布分支。通过合规性和安全性相关检查后,由相关人员在流水线平台调起代理构建服务器触发构建,构建服务器通过Git指令拉取SQL脚本和数据库部署配置文件到服务器,将相关文件通过版本快照的形式推送到制品平台(制品库)进行版本管理。
步骤204,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接。
具体地,在构建完成后,由工作人员在流水线平台通过手动触发的方式或设置持续部署自动触发部署。流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,并远程下发到代理构建服务器。通过命令行形式调用数据库执行工具,将对应的数据库密码通过流水线平台密文变量的形式发送至代理构建服务器连接数据库,实现代理构建服务器与数据库的连接。
步骤206,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
具体地,在默认Schema库中检测是否存在对应的数据库执行记录表,获取检测结果,检测结果包括存在对应的数据库执行记录表或不存在对应的数据库执行记录表。根据检测结果对数据库进行部署,完成本次提交的所有数据库SQL部署后,调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
现有技术方案,需要由开发者或数据库管理人员精通不同数据库执行工具和脚本,且使用流程复杂,使用成本高。数据库脚本管理不统一和规范,必然带来SQL脚本追溯困难,数据库安全性难以保证。本实施例在流水线平台配置流水线后,开发人员只需遵守相关SQL规范和命名规范即可提交实施,使用成本低。对数据库脚本进行版本快照和提交审核记录,实现SQL全程可追溯,数据库改动可精确到开发人员和审核人员。审核人员及SQL检查工具接入扫描提升数据库整体安全性,实现数据库持续部署同时最小化使用成本和最大化数据库安全性。
上述基于流水线平台的数据库部署方法中,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
在一个实施例中,所述根据检测结果对数据库进行部署包括:
若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;
若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
具体地,根据检测结果对数据库进行部署时,如果没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中。如果检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取并执行新的数据库脚本;若没有检测到新的数据库脚本,则证明对应的数据库执行记录表中没有对应的执行记录,不做对应的数据库变更。
本实施例中,当没有检测到对应的数据库执行记录表时,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;当检测到对应的数据库执行记录表时,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更,根据检测结果进行对应的数据库脚本执行以及执行记录保存,简化了数据库部署流程,提高了数据库部署效率。
在一个实施例中,所述从最近一次执行的数据库脚本开始读取执行新的数据库脚本包括:
在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
现有技术针对多Schema库,主要使用多工具分Schema库管理和人工的统一管理。多工具分Schema库管理可以实现不同环境数据库强一致性和数据版本控制,但多套工具必然带来使用复杂度和维护困难性。而使用人工统一管理,虽然复杂度低,但难以保证不同数据库的强一致性,不可追溯。在检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本时,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema库中完成数据库持续部署。
本实施例中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署,通过单一或多个执行记录进行版本控制,灵活结合统一和分库管理优势,对于多Schema库也可实现统一管理,减少数据库管理人员管理成本的同时保证不同环境数据库强一致性。
在一个实施例中,所述基于流水线平台的数据库部署方法还包括:
在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;
将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;
当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;
当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
具体地,基于流水线平台的数据库部署方法还包括数据库的正向变更和反向回滚,在默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件。图4为一个实施例中基于流水线平台的数据库回滚的流程示意图,如图4所示,当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
本实施例中,不同于现有技术的数据库回滚往往是基于时间点的数据库备份和恢复实现。现有的数据库回滚技术虽然也能实现数据库的回滚,但数据库回滚耗时长,因此难以在持续部署流水线中配置来实现持续的数据库回滚。本实施例的解决方案基于回调脚本的双向数据库部署流程来实现数据库回滚,无需整体备份和还原固定时间点数据库,只需执行相应回滚脚本即可实现数据库持续部署的回滚,极大减少了数据库回滚耗时,从而可以直接在部署流水线中调起数据库回滚,实现持续的数据库回滚。
在一个实施例中,所述当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录包括:
当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;
根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;
执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
具体地,当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中,当执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
本实施例中,基于回滚脚本的双向数据库部署流程的数据库持续部署回滚。通过单次数据库部署的回滚脚本,实现动态更新正反两套数据库执行记录进行数据库脚本版本控制,使用双向的数据库部署流程来实现数据库持续的回滚功能,减少了数据库回滚耗时,从而可以直接在部署流水线中调起数据库回滚,实现持续的数据库回滚。
在一个实施例中,所述当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录包括:
当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;
根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;
执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
具体地,当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件,根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中,执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
本实施例中,基于回滚脚本的双向数据库部署流程的数据库持续部署回滚。通过单次数据库部署的回滚脚本,实现动态更新正反两套数据库执行记录进行数据库脚本版本控制,使用双向的数据库部署流程来实现数据库持续的回滚功能,减少了数据库回滚耗时,从而可以直接在部署流水线中调起数据库回滚,实现持续的数据库回滚。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于流水线平台的数据库部署方法的基于流水线平台的数据库部署装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于流水线平台的数据库部署装置实施例中的具体限定可以参见上文中对于基于流水线平台的数据库部署方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种基于流水线平台的数据库部署装置,包括:构建模块501、连接模块502和部署模块503,其中:
构建模块501,用于创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
连接模块502,用于通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
部署模块503,用于在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
在一个实施例中,所述部署模块503还用于:若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
在一个实施例中,所述部署模块503还用于:在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
在一个实施例中,所述部署模块503还用于:在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
在一个实施例中,所述部署模块503还用于:当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
在一个实施例中,所述部署模块503还用于:当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
上述基于流水线平台的数据库部署装置,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
上述基于流水线平台的数据库部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于流水线平台的数据库部署方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
上述计算机设备,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
上述存储介质,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
上述计算机程序产品,通过流水线平台调用代理构建服务器触发构建,通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接,在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署,简化了数据库部署流程,提高了数据库部署效率。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于流水线平台的数据库部署方法,其特征在于,所述方法包括:
创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
2.根据权利要求1所述的方法,其特征在于,所述根据检测结果对数据库进行部署包括:
若没有检测到对应的数据库执行记录表,根据数据库部署配置文件的配置在默认Schema库中生成数据库执行记录表,并将数据库脚本的执行记录保存在数据库执行记录表中;
若检测到对应的数据库执行记录表,从最近一次执行的数据库脚本开始读取执行新的数据库脚本,若没有检测到新的数据库脚本,不做对应的数据库变更。
3.根据权利要求2所述的方法,其特征在于,所述从最近一次执行的数据库脚本开始读取执行新的数据库脚本包括:
在数据库脚本执行过程中,对于多Schema库,可以通过数据库语句实现不同的Schema库灵活切换,实现在不同Schema中完成数据库持续部署。
4.根据权利要求2所述的方法,其特征在于,所述基于流水线平台的数据库部署方法还包括:
在所述默认Schema库中分别创建数据库正向执行记录表和数据库反向执行记录表用于对数据库脚本版本进行控制;
将数据库正向配置文件和对应的数据库回滚配置文件存放于同一数据库脚本文件库中的不同文件夹中进行管理;其中,每个数据库回滚配置文件都有一个与之对应的数据库回滚配置文件;
当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录;
当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录。
5.根据权利要求4所述的方法,其特征在于,所述当数据库正向变更时,数据库脚本执行工具基于数据库正向配置文件执行对应的正向数据库脚本,并进行记录包括:
当数据库正向变更时,数据库执行脚本工具读取数据库脚本文件库中的数据库正向配置文件;
根据数据库正向执行记录表执行数据库脚本文件库中的数据库脚本,将执行记录依次记录到正向执行记录表中;
执行成功后,检查并删除回滚执行记录表中与本次正向执行对应的回滚执行记录。
6.根据权利要求5所述的方法,其特征在于,所述当数据库反向回滚时,数据库脚本执行工具基于数据库回滚配置文件执行对应的回滚数据库脚本,并进行记录包括:
当数据库反向回滚时,数据库执行工具读取数据库脚本文件库中的数据库回滚配置文件;
根据数据库反向执行记录表执行数据库脚本文件库中的数据库脚本,并将执行记录依次记录到反向执行记录表中;
执行成功后,检查并删除正向执行记录表中与本次反向回滚对应的正向执行记录。
7.一种基于流水线平台的数据库部署装置,其特征在于,所述装置包括:
构建模块,用于创建功能分支,拉取数据库脚本、数据库部署配置文件及对应代码到流水线平台,通过合规和安全性检查后,将所述功能分支合并到发布分支,通过流水线平台调用代理构建服务器触发构建;
连接模块,用于通过流水线平台调用代理构建服务器拉取目标版本的数据库脚本文件库和数据库部署配置文件,调用数据库脚本执行工具,实现代理构建服务器与数据库的连接;
部署模块,用于在默认Schema库中检测是否存在对应的数据库执行记录表,根据检测结果对数据库进行部署,之后调用制品库对制品进行拉取实现对已部署数据库对应应用的部署。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202111360729.6A 2021-11-17 2021-11-17 基于流水线平台的数据库部署方法、装置和计算机设备 Pending CN114238266A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111360729.6A CN114238266A (zh) 2021-11-17 2021-11-17 基于流水线平台的数据库部署方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111360729.6A CN114238266A (zh) 2021-11-17 2021-11-17 基于流水线平台的数据库部署方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN114238266A true CN114238266A (zh) 2022-03-25

Family

ID=80749775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111360729.6A Pending CN114238266A (zh) 2021-11-17 2021-11-17 基于流水线平台的数据库部署方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN114238266A (zh)

Similar Documents

Publication Publication Date Title
CN108491422B (zh) 数据库自动化运维管理方法、服务器及存储介质
US11620277B2 (en) Transaction processing at non-relational databases
JP5931973B2 (ja) 仮想データベースシステム
US7650356B2 (en) Generating an optimized restore plan
US20190012321A1 (en) Virtual Partitions in Virtual Databases
US9384198B2 (en) Agency management system and content management system integration
US9201739B1 (en) Method and system for a database management system add-in for third party backup and restore applications
US20170199903A1 (en) System for backing out data
CN104898918B (zh) 备份装置及运作方法
CN112714908A (zh) 依赖性图形控制的对象和计算管线迁移
US8843450B1 (en) Write capable exchange granular level recoveries
US20150178122A1 (en) Method and system for providing a high-availability application
CN104156369B (zh) 一种数据库镜像制作方法和一种数据库
US20210326454A1 (en) Systems and methods for use in validating artifacts for deployment
CN117493199A (zh) 代码校验方法、装置、计算机设备和存储介质
US20080320059A1 (en) Database System and Method for External Backup
EP4220406B1 (en) Action undo service based on cloud platform
CN114238266A (zh) 基于流水线平台的数据库部署方法、装置和计算机设备
CN114116664B (zh) 数据库建表语句处理方法、装置、计算机设备和存储介质
WO2019085354A1 (zh) 基于Excel系统界面的数据库联动方法、电子装置及存储介质
CN114756293A (zh) 业务处理方法、装置、计算机设备和存储介质
CN114327588A (zh) 一种代码提交日志的处理方法及装置
EP2610763A1 (en) Automated framework for post archival data comparison
CN115470043B (zh) 数据库备份方法、装置、计算机设备和存储介质
CN115756554B (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