CN112100194A - 一种数据库版本管理方法及系统 - Google Patents
一种数据库版本管理方法及系统 Download PDFInfo
- Publication number
- CN112100194A CN112100194A CN202011081322.5A CN202011081322A CN112100194A CN 112100194 A CN112100194 A CN 112100194A CN 202011081322 A CN202011081322 A CN 202011081322A CN 112100194 A CN112100194 A CN 112100194A
- Authority
- CN
- China
- Prior art keywords
- version
- database
- metadata table
- migration
- 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.)
- Withdrawn
Links
- 238000007726 management method Methods 0.000 title claims abstract description 31
- 230000001360 synchronised effect Effects 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 8
- 230000008859 change Effects 0.000 claims abstract description 6
- 238000013508 migration Methods 0.000 claims description 51
- 230000005012 migration Effects 0.000 claims description 51
- 238000013515 script Methods 0.000 claims description 35
- 238000012795 verification Methods 0.000 claims description 9
- 238000011161 development Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库版本管理方法及系统,所述方法包括:管理系统启动,根据配置数据源文件连接待同步数据库;检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。所述系统包括存储装置和功能装置。本发明实现了记录数据库版本演化过程,根据需求完成数据库版本升级。
Description
技术领域
本发明涉及数据库开发领域,具体涉及一种数据库版本管理方法及系统。
背景技术
在软件项目开发初期,会对数据库进行全局设计。但是随着产品开发过程中需求的变化,经常会遇到更新数据库模式(schema)的情况,比如新增表、新增字段或者新增数据等情况。当开发人员完成了数据库脚本的开发后,通常需要对其它开发者的数据库或者测试环境等进行数据库脚本的同步,由于各环境的管理者不同,通常需要不同的角色手动执行脚本,完成脚本的更新。
然而,不同环境场景下的数据库同步,可能导致项目组中各研发角色对数据库维护造成本地与原始环境出现差异性,影响版本升级的准确性。
发明内容
为了解决上述技术问题,本发明提出了一种数据库版本管理方法及系统,实现了对数据库版本的演化过程进行记录,根据需求完成数据库版本的升级更新。
为实现上述目的,本发明采用以下技术方案:
一种数据库版本管理方法,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
进一步地,所述验证已迁移版本文件,包括:
将元数据表中的版本校验码与存储装置中的版本文件的校验码进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,调用对应版本文件,在待同步数据库中更新。
进一步地,若版本文件迁移失败,则读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
进一步地,当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
进一步地,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。
进一步地,还包括:读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本。
本发明还提出了一种数据库版本管理系统,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
进一步地,所述功能装置还包括撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下。
进一步地,所述存储装置包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;
所述可重复迁移脚本库被迁移模块调用,用于管理不稳定的数据库对象,可以按照顺序重复执行。
进一步地,所述功能装置还包括打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
本发明的有益效果是:
本发明通过提出一种数据库版本管理方法及系统,解决了数据库同步出现差异的问题,本发明实通过建立元数据表的方式记录追踪SQL语句的执行状态,根据需求完成版本的升级更新。
本发明针对分布式数据库实现同步管理,便于对数据库修改记录进行追踪,实现不同环境场景下的数据库同步,避免了项目组中各研发角色对数据库维护造成本地与原始环境的差异性,有效提升版本升级准确性。
附图说明
图1是本发明实施例数据库版本管理方法流程示意图;
图2是本发明实施例数据库版本管理系统结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明实施例公开了一种数据库版本管理方法,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表的version字段中存在,则跳过此版本,进入下一版本的比对中;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
具体地,所述元数据表的表字段包括installed_rank、version、description、type、script、checksum(检验码)、installed_by(责任人)、installed_on(执行时间)、success(是否执行成功)等。
所述验证已迁移版本文件,包括:
将元数据表中的版本校验码checksum值与存储装置中的版本文件的校验码checksum值进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,说明存储装置中的文件发生了变更,此时调用对应版本文件,在待同步数据库中更新,防止数据不一致的情况发生。
如果版本文件迁移成功,元数据表的sucess字段写入y;如果版本文件迁移失败,元数据表的sucess字段写入n,执行撤销操作,读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
在项目开发与测试阶段中,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。具体删除的对象包括:表结构、视图、存储过程、函数及数据。
本发明实施例的数据库版本管理方法还包括:读取元数据表的执行记录,打印版本文件迁移信息,用于定位当前数据库版本,查看迁移数据的执行状态,包括执行记录,是否执行以及执行是否成功等。
如图2所示,本发明实施例还公开了一种数据库版本管理系统,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整等操作,用做普通的DDL(Data Definition Language,数据定义语言)、DML(Data ManipulationLanguage,数据操纵语言)变更,DDL包括cerate、drop、alter等,DML包括insert、delete、update等;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;开发人员提供版本升级脚本时,同步提供对应的撤销迁移脚本,供恢复数据库使用;
所述可重复迁移脚本库被迁移模块调用,包括可重复加载的版本脚本,用于管理不稳定的数据库对象,可以按照顺序重复执行。
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
功能装置还包括:
撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下;
打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种数据库版本管理方法,其特征在于,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
2.根据权利要求1所述的数据库版本管理方法,其特征在于,所述验证已迁移版本文件,包括:
将元数据表中的版本校验码与存储装置中的版本文件的校验码进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,调用对应版本文件,在待同步数据库中更新。
3.根据权利要求1所述的数据库版本管理方法,其特征在于,若版本文件迁移失败,则读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
4.根据权利要求1所述的数据库版本管理方法,其特征在于,当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
5.根据权利要求1所述的数据库版本管理方法,其特征在于,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。
6.根据权利要求1所述的数据库版本管理方法,其特征在于,还包括:读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本。
7.一种数据库版本管理系统,其特征在于,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
8.根据权利要求7所述的数据库版本管理系统,其特征在于,所述功能装置还包括撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下。
9.根据权利要求8所述的数据库版本管理系统,其特征在于,所述存储装置包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;
所述可重复迁移脚本库被迁移模块调用,用于管理不稳定的数据库对象,可以按照顺序重复执行。
10.根据权利要求7所述的数据库版本管理系统,其特征在于,所述功能装置还包括打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011081322.5A CN112100194A (zh) | 2020-10-10 | 2020-10-10 | 一种数据库版本管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011081322.5A CN112100194A (zh) | 2020-10-10 | 2020-10-10 | 一种数据库版本管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112100194A true CN112100194A (zh) | 2020-12-18 |
Family
ID=73783831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011081322.5A Withdrawn CN112100194A (zh) | 2020-10-10 | 2020-10-10 | 一种数据库版本管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100194A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420010A (zh) * | 2021-06-23 | 2021-09-21 | 建信金融科技有限责任公司 | 数据库的管理方法、装置、电子设备和存储介质 |
CN113741931A (zh) * | 2021-08-18 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 软件升级方法、装置、电子设备及可读存储介质 |
CN114760320A (zh) * | 2020-12-29 | 2022-07-15 | 广州视源电子科技股份有限公司 | 客户端与中台服务器的数据同步方法、系统及客户端 |
WO2023123768A1 (zh) * | 2021-12-27 | 2023-07-06 | 中国民航信息网络股份有限公司 | 一种制品管理方法、系统、存储介质和电子设备 |
CN117971565A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 一种恢复列存储分布式数据库误删除数据的方法及系统 |
-
2020
- 2020-10-10 CN CN202011081322.5A patent/CN112100194A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760320A (zh) * | 2020-12-29 | 2022-07-15 | 广州视源电子科技股份有限公司 | 客户端与中台服务器的数据同步方法、系统及客户端 |
CN114760320B (zh) * | 2020-12-29 | 2023-09-12 | 广州视源电子科技股份有限公司 | 客户端与中台服务器的数据同步方法、系统及客户端 |
CN113420010A (zh) * | 2021-06-23 | 2021-09-21 | 建信金融科技有限责任公司 | 数据库的管理方法、装置、电子设备和存储介质 |
CN113741931A (zh) * | 2021-08-18 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 软件升级方法、装置、电子设备及可读存储介质 |
CN113741931B (zh) * | 2021-08-18 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 软件升级方法、装置、电子设备及可读存储介质 |
WO2023123768A1 (zh) * | 2021-12-27 | 2023-07-06 | 中国民航信息网络股份有限公司 | 一种制品管理方法、系统、存储介质和电子设备 |
CN117971565A (zh) * | 2024-03-29 | 2024-05-03 | 天津南大通用数据技术股份有限公司 | 一种恢复列存储分布式数据库误删除数据的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100194A (zh) | 一种数据库版本管理方法及系统 | |
US7739547B2 (en) | Failure recovery and error correction techniques for data loading in information warehouses | |
US9996341B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
US10810248B2 (en) | Upgrading a database from a first version to a second version | |
CN110209735B (zh) | 数据库备份方法、数据库备份装置、计算设备和存储介质 | |
EP2194467A1 (en) | Extend CRUD to support lifecycle management and business continuity | |
CN101308471B (zh) | 一种恢复数据的方法及装置 | |
US7487385B2 (en) | Apparatus and method for recovering destroyed data volumes | |
CN106991104B (zh) | 数据库脚本部署装置和数据库脚本部署方法 | |
US11537570B2 (en) | Systems and/or methods for migrating live database schemas to support zero downtime deployments with zero data losses | |
CN111104151B (zh) | 一种基于Shell脚本的Git代码简化的管理方法 | |
CN109947742B (zh) | 面向二阶段锁的多版本数据库并发控制方法和系统 | |
CN102193841B (zh) | 一种Subversion配置库的备份方法及装置 | |
EP2797001B1 (en) | System and method for creating variants in a test database during various test stages | |
CN114564500A (zh) | 在区块链系统中实现结构化数据存储和查询的方法和系统 | |
CN112966025A (zh) | 一种binlog日志挖掘字典实现方法 | |
CN114003266B (zh) | 一种基于Android刷机固件生成多个差分包的方法与装置 | |
CN113792026B (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
CN115658391A (zh) | 基于QianBase MPP数据库的WAL机制的备份恢复方法 | |
CN111240891A (zh) | 基于数据库多表间数据一致性的数据恢复方法及装置 | |
CN114490570A (zh) | 生产数据同步方法、装置、数据同步系统及服务器 | |
CN111400243B (zh) | 基于流水线服务的研发管理系统以及文件存储方法、装置 | |
US20170300387A1 (en) | Always Current backup and recovery method on large databases with minimum resource utilization. | |
US10922301B1 (en) | Apparatus, computer program, and method for trigger-based tracking of database modifications | |
CN113778997B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201218 |
|
WW01 | Invention patent application withdrawn after publication |