System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库,具体的说是一种直观记录数据库表结构变更情况的方法及系统。
技术介绍
1、在项目开发过程中,数据库实例是一对多的,一是指开发环境,多是指测试环境及多种生产环境,不同环境的数据库因业务不同和更新程度不同而存在差异,研发人员往往很难记录数据库的变更情况以及每个数据库目前的情况,这就容易导致更新数据库表结构时出现表遗漏、字段遗漏以及字段设置不符等情况,使得程序报错。记录并查看表结构变更历史一般需要借助数据库日志及开发工具,但是数据库日志中dml语句及ddl语句是一起被记录的,不够直观,一段时间的表结构变更需要研发人员自己辨别并生成语句。开发工具对于同一个数据库不同时间点的情况对比也需要依赖两个时间点的数据库历史记录。
2、市面上主流的数据库有mysql、oracle等,其中mysql数据库查看表结构变更历史依赖于日志文件,需要用mysqlbinlog或其它开发工具来分析日志,这是基于默认情况下的mysql设置,不同版本的mysql可能存在些微差异。而oracle数据库也可以通过日志文件分析获取操作历史记录,内置的审计功能和flashback功能,可以查看数据库中包括登录、ddl语句、dml语句等各种操作和某个时间点的操作历史记录。
技术实现思路
1、数据库仅针对表结构变更记录并没有统一直观的查询方式,需要依赖于日志文件,但是各种操作记录杂糅在一起,提取需要的信息需要研发人员自己辨别,生成同步语句。为了解决以上问题,本专利技术提供一种直观记录数据库表结构变更
2、第一方面,本专利技术提供一种直观记录数据库表结构变更情况的方法,解决上述技术问题采用的技术方案如下:
3、一种直观记录数据库表结构变更情况的方法,其包括如下步骤:
4、通过mysqldump定时转储数据库的表结构;
5、利用创建语句create固定的格式,解析并获取表结构信息,随后,对比表结构,直观展示变更记录;
6、通过差异信息套用ddl语句,自动生成同步语句。
7、可选的,通过mysqldump定时转储数据库的表结构,生成sql文件,存到git仓库中。
8、进一步可选的,sql文件中表结构是以创建语句的形式显示,利用创建语句create固定的格式,将sql文件的内容解析为语法树对象,使用程序获取表的结构信息。
9、进一步可选的,选定源表结构文件和目的表结构文件,读取需要对比的两个文件,分别通过程序解析获取表名和字段信息,然后通过正则表达式提取字段名称、字段类型,生成字段对象;
10、以字段名称为依据,对比源表和目的表两个不同时段表结构的不同。
11、进一步可选的,依据ddl固定的语法格式和解析对比后产生的差异信息,将两者套用生成同步语句。
12、第二方面,本专利技术提供一种直观记录数据库表结构变更情况的系统,解决上述技术问题采用的技术方案如下:
13、一种直观记录数据库表结构变更情况的系统,其包括:
14、定时转储模块,用于通过mysqldump定时转储数据库的表结构;
15、解析展示模块,用于利用创建语句create固定的格式,解析并获取表结构信息,随后,对比表结构,直观展示变更记录;
16、自动生成模块,用于通过差异信息套用ddl语句,自动生成同步语句。
17、可选的,所涉及定时转储模块通过mysqldump定时转储数据库的表结构,生成sql文件,存到git仓库中。
18、进一步可选的,所涉及sql文件中表结构是以创建语句的形式显示;
19、解析展示模块利用创建语句create固定的格式,将sql文件的内容解析为语法树对象,使用程序获取表的结构信息。
20、进一步可选的,所涉及解析展示模块首先选定源表结构文件和目的表结构文件,读取需要对比的两个文件,并分别通过程序解析获取表名和字段信息,然后通过正则表达式提取字段名称、字段类型,生成字段对象,最后以字段名称为依据,对比源表和目的表两个不同时段表结构的不同。
21、进一步可选的,所涉及自动生成模块依据ddl固定的语法格式和解析对比后产生的差异信息,将两者套用生成同步语句。
22、本专利技术的一种直观记录数据库表结构变更情况的方法及系统,与现有技术相比具有的有益效果是:
23、1、本专利技术利用数据库表结构与数据分开的特性,通过mysqldump定时转储数据库的表结构到git仓库中,随后通过对比源表结构文件和目的表结构文件,定时生成数据库结构变更记录,并支持通过选择时间点和数据库来展示对比情况并自动生成更新语句。
24、2、本专利技术可以让研发和运维人员直观的查看数据库的表结构变更情况,进而通过不同时间点获取到数据库文件,获取指定时间内数据库表结构的差异信息,并自动获取同步语句。
本文档来自技高网...【技术保护点】
1.一种直观记录数据库表结构变更情况的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种直观记录数据库表结构变更情况的方法,其特征在于,通过mysqldump定时转储数据库的表结构,生成sql文件,存到git仓库中。
3.根据权利要求2所述的一种直观记录数据库表结构变更情况的方法,其特征在于,sql文件中表结构是以创建语句的形式显示;
4.根据权利要求3所述的一种直观记录数据库表结构变更情况的方法,其特征在于,选定源表结构文件和目的表结构文件,读取需要对比的两个文件,分别通过程序解析获取表名和字段信息,然后通过正则表达式提取字段名称、字段类型,生成字段对象;
5.根据权利要求4所述的一种直观记录数据库表结构变更情况的方法,其特征在于,依据DDL固定的语法格式和解析对比后产生的差异信息,将两者套用生成同步语句。
6.一种直观记录数据库表结构变更情况的系统,其特征在于,其包括:
7.根据权利要求6所述的一种直观记录数据库表结构变更情况的系统,其特征在于,所述定时转储模块通过mysqldump定时转储数
8.根据权利要求7所述的一种直观记录数据库表结构变更情况的系统,其特征在于,所述sql文件中表结构是以创建语句的形式显示;
9.根据权利要求8所述的一种直观记录数据库表结构变更情况的系统,其特征在于,所述解析展示模块首先选定源表结构文件和目的表结构文件,读取需要对比的两个文件,并分别通过程序解析获取表名和字段信息,然后通过正则表达式提取字段名称、字段类型,生成字段对象,最后以字段名称为依据,对比源表和目的表两个不同时段表结构的不同。
10.根据权利要求9所述的一种直观记录数据库表结构变更情况的系统,其特征在于,所述自动生成模块依据DDL固定的语法格式和解析对比后产生的差异信息,将两者套用生成同步语句。
...【技术特征摘要】
1.一种直观记录数据库表结构变更情况的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种直观记录数据库表结构变更情况的方法,其特征在于,通过mysqldump定时转储数据库的表结构,生成sql文件,存到git仓库中。
3.根据权利要求2所述的一种直观记录数据库表结构变更情况的方法,其特征在于,sql文件中表结构是以创建语句的形式显示;
4.根据权利要求3所述的一种直观记录数据库表结构变更情况的方法,其特征在于,选定源表结构文件和目的表结构文件,读取需要对比的两个文件,分别通过程序解析获取表名和字段信息,然后通过正则表达式提取字段名称、字段类型,生成字段对象;
5.根据权利要求4所述的一种直观记录数据库表结构变更情况的方法,其特征在于,依据ddl固定的语法格式和解析对比后产生的差异信息,将两者套用生成同步语句。
6.一种直观记录数据库表结构变更情况的系统,其特征在...
【专利技术属性】
技术研发人员:秦聪聪,赵子墨,郭亚琨,
申请(专利权)人:浪潮卓数大数据产业发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。