CN116578651B - 数据表结构同步方法、***及设备 - Google Patents
数据表结构同步方法、***及设备 Download PDFInfo
- Publication number
- CN116578651B CN116578651B CN202310854898.8A CN202310854898A CN116578651B CN 116578651 B CN116578651 B CN 116578651B CN 202310854898 A CN202310854898 A CN 202310854898A CN 116578651 B CN116578651 B CN 116578651B
- Authority
- CN
- China
- Prior art keywords
- information
- table structure
- target
- platform
- name
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000004048 modification Effects 0.000 claims abstract description 48
- 238000012986 modification Methods 0.000 claims abstract description 48
- 230000001360 synchronised effect Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012795 verification Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 22
- 238000012790 confirmation Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 181
- 238000010586 diagram Methods 0.000 description 14
- 238000012360 testing method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/2365—Ensuring data consistency and integrity
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据表结构同步方法、***及设备。通过在第一平台基于源数据表的源表结构信息生成对应的参照表创建信息,第二平台基于该参照表创建信息创建可以确认对应的目标数据表及其对应的目标表结构信息;进而,根据参照表结构信息和目标数据表的目标表结构信息,确定二者之间的表结构差异信息及对应的待修改数据表,基于表结构差异信息,可以生成对应的表结构同步信息,以用于后续对待修改数据表的表结构修改操作。可以实现无需借助其他同步工具的基础上,以代码组件化的方式自动完成跨平台的表结构同步确认操作,并且对数据库的原始数据改动较小,不仅可以提升数据处理的效率和准确度,还有助于减少人力成本和资源损耗。
Description
技术领域
本申请涉及智能汽车技术领域,尤其涉及一种数据表结构同步方法、***及设备。
背景技术
在实际产品架构设计中,经常会遇到数据同步的场景,即通过数据同步工具,实现跨平台数据库之间的数据同步,其中,实现数据同步的前提是不同平台中待同步的数据库中的数据表结构相同。
虽然,依赖数据同步工具能够实现不同平台之间的表结构统一,但是,现有方式针对不同平台的数据库进行操作时,跨平台数据表结构对比难度大,且准确性难以保证,存在误删数据库的风险。
发明内容
本申请的多个方面提供一种数据表结构同步方法、***及设备,用于实现不同平台之间的数据表结构的同步管理,保证不同平台数据处理的一致性。
本申请实施例提供一种跨平台的数据表结构同步方法,适用于第二平台,所述方法包括:获取第一平台生成的参照表创建信息,所述参照表创建信息是根据待同步的多个源数据表对应的源表结构信息生成的,所述参照表创建信息包括多个参照表名;根据所述参照表创建信息,确定对应的参照表结构信息;以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名;根据多个目标表名,获取多个目标数据表对应的目标表结构信息;根据所述参照表结构信息和所述目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表;根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息。
在一可选实施例中,所述参照表创建信息中的每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的,针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,包括:根据所述预设表名后缀标识,校验所述参照表创建信息中的每个参照表名;以及在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名。
在一可选实施例中,根据所述参照表结构信息和所述目标表结构信息,确定存在的表结构差异以及对应的待修改数据表,包括:将互相对应的参照表结构信息和目标表结构信息确定为一组;对比每组中的参照表结构信息和目标表结构信息,确定至少一组表结构不同的目标对照组以及对应的表结构差异信息;将每个目标对照组中对应的目标数据表均作为待修改数据表。
在一可选实施例中,根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息,包括:根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作修改SQL语句,作为表结构同步信息。
在一可选实施例中,所述参照表创建信息为建表SQL语句,在根据所述参照表创建信息,确定对应的参照表结构信息之前,还包括:执行嵌入所述建表SQL语句的第一目标程序代码,以在所述第二平台创建多个参照数据表;相应地,确定对应的参照表结构信息,包括:执行嵌入第一查询SQL语句的第二目标程序代码,从所述第二平台获取对应的参照表结构信息,所述第一查询SQL语句是根据所述多个参照表名确定的。
在一可选实施例中,根据多个目标表名,获取多个目标数据表对应的目标表结构信息,包括:执行嵌入第二查询SQL语句的第三目标程序代码,从所述第二平台获取多个目标数据表对应的目标表结构信息,所述第二查询SQL语句是根据所述多个目标表名确定的。
在一可选实施例中,所述方法还包括:根据所述预设表名后缀标识,获取待删除的多个参照数据表分别对应的待删除参照表名;执行嵌入删表SQL语句的第四目标程序代码,以从所述第二平台删除所述多个参照数据表,所述删表SQL语句是根据多个待删除参照表名确定的。
本申请实施例还提供一种数据表管理***,包括:第一平台,用于根据待同步的多个源数据表对应的源表结构信息生成对应的参照表创建信息,所述参照表创建信息中包括多个参照表名,每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的;第二平台,用于获取所述参照表创建信息,根据所述参照表创建信息,确定对应的参照表结构信息;以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名;根据多个目标表名,获取多个目标数据表对应的目标表结构信息;根据所述参照表结构信息和所述目标表结构信息,确定所述多个目标数据表中与多个参照数据表存在表结构差异的待修改数据表;根据所述表结构差异,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息。
在一可选实施例中,所述第二平台在针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名之时,用于:根据所述预设表名后缀标识,校验所述参照表创建信息中的每个参照表名;以及在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名。
在一可选实施例中,所述第二平台在根据所述参照表结构信息和所述目标表结构信息,确定所述多个目标数据表中与所述多个参照数据表存在表结构差异的待修改数据表时,用于:将互相对应的参照表结构信息和目标表结构信息确定为一组;对比每组中的参照表结构信息和目标表结构信息,确定至少一组表结构不同的目标对照组;将每个目标对照组中对应的目标数据表均作为待修改数据表。
在一可选实施例中,所述第二平台在根据所述表结构差异,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息时,用于:获取每组目标对照组对应的表结构差异信息;根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作修改SQL语句,作为表结构同步信息。
在一可选实施例中,所述***还包括:操作平台,用于响应第一请求操作,向所述第一平台发送所述第一请求,以供所述第一平台根据所述第一请求获取待同步的多个源数据表分别对应的源表结构信息;以及响应第二请求操作,向所述第二平台发送所述第二请求,以供所述第二平台根据所述第二请求获取所述参照表创建信息。
本申请实施例还提供一种计算机设备,包括:处理器和存储有计算机程序的存储器,在所述处理器执行所述计算机程序时,以用于实现所述表结构同步方法。
本申请实施例还提供一种存储有计算机程序/指令的计算机可读存储介质,当所述计算机程序/指令被处理器执行时,致使所述处理器实现所述表结构同步方法。
在本申请实施例中,针对分别所属于第一平台和第二平台的源数据表和目标数据表,为了实现源数据表和目标数据表的表结构统一,首先,通过在第一平台基于源数据表的源表结构信息生成对应的参照表创建信息;进而,第二平台可以基于该参照表创建信息中的多个参照表名,确定对应的目标表名以及目标表结构信息,以及根据参照表创建信息对应的表结构,确定对应的参照表结构信息;基于此,根据参照表结构信息和目标表结构信息,确定二者之间的表结构差异信息及对应的待修改数据表,进而,根据表结构差异信息生成对应的表结构同步信息,以用于对待修改数据表的表结构进行修改。通过这种方式,可以实现在无需借助其他同步工具的基础上,以代码组件化的方式自动完成跨平台的表结构同步确认操作,并且对数据库的原始数据改动较小,整个实现过程不仅可以提升数据处理的效率和准确度,还有助于减少人力成本和资源损耗。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种数据表管理***的结构图;
图1b为本申请实施例提供的另一种数据表管理***的结构图;
图1c为本申请实施例提供的另一种数据表管理***的结构图;
图2a为本申请实施例提供的应用于第二平台的表结构同步方法流程图;
图2b为本申请实施例提供的应用于第一平台的整体流程;
图2c为本申请实施例提供的应用于第二平台的整体流程;
图2d为本申请实施例提供的跨平台的数据库之间的数据表关系示意图;
图3为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决不同平台之间的数据表结构统一困难的问题,本申请实施例提供了一种可以应用于跨平台环境的数据表结构同步方法,该方法可以基于第一平台的源数据表的表结构信息生成对应的参照表建表信息,其中,参照表结构信息包括多个参照表名;第二平台可以获取该参照表结构信息,并根据参照表创建信息,确定对应的参照表结构信息,以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,并根据多个目标表名,获取多个目标数据表对应的目标表结构信息。基于此,可以根据参照表结构信息与目标表结构信息确定二者之间的表结构差异信息及对应的待修改数据表,进而根据表结构差异信息生成对待修改数据表执行表结构修改操作的表结构同步信息,为后续执行数据表结构修改操作提供修帮助。并且,整个方法中涉及对数据表的操作均是通过项目代码以代码组件化的方式自动完成,无需人工干预,不仅可以提升数据处理过程的效率和准确度,还有助于减少人力成本。
在对本申请实施例提供的数据表结构同步方法的具体实现步骤说明之前,首先对该方法应用的***环境进行说明。
在本申请实施例中,还提供了一种数据表管理***,在该***中,包括互不相通的第一平台和第二平台,在第一平台和第二平台中,包括彼此之间具有对应关系的数据表,这些具有对应关系的数据表在第一平台和第二平台中共同对应相同的数据表名,但表结构可能存在差异。因此,为了保证第一平台和第二平台在数据处理上的一致性,需要对第一平台和第二平台中具有对应关系的数据表做表结构同步处理。
例如,第一平台是项目代码运行的线上环境,第二平台是项目代码运行的测试环境,若线上环境必要的源数据表及其中的必要字段及其属性等信息与测试环境不一致,这可能造成在测试环境能顺利执行的项目代码无法在线上环境执行成功。因此,为了保证项目代码能够在线上环境顺利执行,线上环境的源数据表必须在测试环境有对应表结构的目标数据表。那么,就需要确定线上环境的源数据表与测试环境中对应的目标数据表的表结构是否一致,并在确定不一致的情况下,以线上环境的源数据表的表结构为基准,对测试环境的目标数据表做表结构同步处理,进而保证项目代码在不同环境中执行结果的一致性。
在本申请实施例中,可以在第一平台和第二平台中分别创建用于对数据表做表结构同步处理的接口,例如,在第一平台中创建第一接口,以及在第二平台中创建第二接口;其中,第一接口用于据待同步的多个源数据表对应的源表结构信息生成参照表创建信息,参照表创建信息包括多个参照表名;第二接口用于根据参照表创建信息,确定对应的参照表结构信息;以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,并根据多个目标表名及其对应的目标表结构信息;进而,根据参照表结构信息和目标表结构信息,可以确定多个目标数据表中与多个参照数据表存在表结构差异的待修改数据表;进而,根据表结构差异,生成用于对待修改数据表执行表结构修改操作的表结构同步信息。基于此,在确定需要对第一平台和第二平台进行数据表结构同步操作的情况下,可以通过第一平台中的第一接口和第二平台中的第二接口的配合,实现本申请实施例提供的数据表结构同步方法,以根据方法执行得到的表结构同步信息,对第一平台和第二平台中具有对应关系的数据表的执行表结构同步操作。
下面结合附图对本申请实施例提供的数据表管理***进行说明。
图1a为本申请实施例提供的一种数据表管理***的结构图,如图1a所示,***包括第一平台10和第二平台20,其中,第一平台10中的第一接口可以接收第一请求,并根据第一请求从源数据库中获取待同步的多个源数据表分别对应的源表结构信息;进一步,在获取到源表结构信息的情况下,第一接口可以根据源表结构信息和预设表名后缀标识,生成参照表创建信息,其中,参照表创建信息中包括多个参照表名,每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的,且表结构与其对应源数据表的表结构相同。
相应地,如图1a所示,第二平台20中的第二接口可以接收第二请求,并根据第二请求获取参照表创建信息;进一步,根据参照表创建信息,确定对应的参照表结构信息,以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,并根据多个目标表名,获取多个目标数据表对应的目标表结构信息。基于此,如图1a所示,根据参照表结构信息和目标表结构信息,可以确定存在的表结构差异信息以及对应的待修改数据表;进一步,根据表结构差异信息,可以生成用于对待修改数据表执行表结构修改操作的表结构同步信息。
可选地,第一接口在生成参照表创建信息时,可以通过执行嵌入源数据表查询SQL语句的程序代码,获取源数据库中的多个源数据表对应的源表结构信息,并在获取到源表结构信息的情况下,通过执行嵌入源表名查询SQL语句的程序代码,从获取到的源表结构信息中获取多个源数据表分别对应的源表名。基于此,在每个源表名的基础上添加预设后缀标识,得到对应的参照表名,进而,根据多个参照表名和源表结构信息,生成对应的参照表创建信息。
例如,第一接口通过执行嵌入“show tables”SQL语句的程序代码,获取到多个源数据表对应的源表结构信息,假设其中包括一个表名为“demo”且表结构为“('id'bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='这是一个comment';”源表机构信息;基于此,可以通过执行嵌入“showcreate table ${tableName}”SQL 语句的程序代码,从多个源表结构信息中获取到包含名为“demo”的多个源表名。
基于此,以源数据表demo为例,假设预设后缀标识为“_compareFlag”,则在获取到源数据表demo及其对应的表结构信息的情况下,可以在源表名“demo”的基础上加上预设后缀标识“_compareFlag”生成对应的参照表名“demo_ compareFlag”;进而,根据参照表名“demo_ compareFlag”和源数据表demo的表结构信息生成用于创建参照表“demo_compareFlag”的创建信息:CREATE TABLEdemo_ compareFlag ( 'id'bigint(20) NOTNULL AUTO_INCREMENT COMMENT '自增id ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4COMMENT='这是一个comment';以此类推,对每一个源表名均执行上述操作,即可获得用于创建多个参照数据表的参照表创建信息。
需要说明的是,本申请实施例不限定第一请求包含的具体内容,可选地,第一请求可以仅仅是一个对应数据表结构同步类型的请求消息,不包含其他内容,基于此,第一接口在接收到第一请求的情况下,可以从源数据库中获取全量源数据表对应的源表结构信息,进而生成于全量源数据表对应的参照表创建信息。进一步可选地,为了提升处理效率,第一请求中也可以包含指定的源数据表标识,例如源数据表对应的源表名;基于此,第一接口在接收端到第一请求的情况下,可以根据第一请求中指定的源数据表标识,从源数据库中获取对应的源表结构信息,进而生成与指定的源数据表对应的参照表创建信息,具体采用哪种方式,可以根据实际需求确定。
进一步需要说明的是,本申请实施例也不限定第一接口获取预设表名后缀标识的具体方式,可选地,第一请求中可以包括预设表名后缀标识,则第一接口在接收到第一请求的情况下,可以根据第一请求获取预设表名后缀标识。相应地,在第一请求中不包括预设表名后缀标识的情况下,数据表管理统也可以设置有默认的预设表名后缀标识,各平台之间可以使用该默认的预设表名后缀标识对数据表进行各种操作,具体可以根据实际情况确定。其中,不限定默认的预设表名后缀标识的具体形式,只要是能够与***中数据表的表名明显区分开的字符串均适用本申请实施例,例如,可以是没有实际意义的字符串“_ny879_standard”。
本申请实施例中提到的源数据表结构信息、参照表结构信息以及目标表结构信息,是指源数据表、参照数据表以及目标数据表分别对应的表名、表字段名、表字段类型及属性等信息。其中,表字段的属性包括但不限于字段是否为ID,是否为主键、是否非空、是否有默认值、是否为注释,若字段是主键,变化规律是否为自增,若字为注释,是否包括注释内容等等。关于具体的表结构信息可以根据不同数据表的实际情况而定,在此不做限定。
进一步可选地,如图1b所示,本申请实施例中的数据表管理***还可以包括操作平台30,用于响应数据表结构同步操作。可选地,操作平台30可提供有操作页面,指定的工作人员可以通过该操作页面执行数据表结构同步操作。例如,工作人员可以在操作页面上执行第一请求操作,基于此,操作平台30在响应到工作人员执行第一请求操作的情况下,可以向第一平台10的第一接口发送第一请求,以请求第一接口根据第一请求获取待同步的多个源数据表分别对应的源表结构信息,并基于源表结构信息生成对应的参照表创建信息。
相应地,在确定第一平台10生成参照表创建信息的情况下,工作人员还可以通过操作平台30提供的操作页面上执行第二请求操作,基于此,操作平台30在响应到工作人员执行第二请求操作的情况下,可以向第二平台20的第二接口发送第二请求,以请求第二接口根据第二请求获取参照表创建信息,并基于参照表创建信息执行具体的操作,确定需要多表结构做修改操作的待修改数据表,并生成对应的表结构同步信息。
需要说明的是,本申请实施例不限定操作平台30提供的操作页面的具体形式,可选地,操作页面上可以包括选择指定源数据表的功能控件,工作人员在执行第一请求操作时,还可以选择指定的源数据表,以请求第一平台10的第一接口获取指定的源数据表对应的源表结构信息并生成对应的参照表结构信息。
在上述示例中,触发第一平台10和第二平台20执行对应操作的方式仅为示例性说明,在数据表管理***不包括操作平台30的情况下,还可以通过在项目代码中预埋断点,通过项目代码执行到预埋断点处触发分别向第一平台10和第二平台20发送请求的操作;或者,设置定时触发机制,用于定时向第一平台10和第二平台20分别发送请求,等等。具体方式在此不做限定,可以根据***的实际结构和具体需求确定。
可选地,在第一平台10的第一接口生成参照表创建信息的情况下,还可以将生成的参照表创建信息存储到指定地址对应的存储空间,基于此,第二平台20的第二接口在接收到第二请求的情况下,可以根据该指定地址获取参照表创建信息,以根据参照表创建信息执行后续操作。在本申请实施例中,并不限定指定地址对应的具***置,在一可选实施例中,指定地址对应的存储位置可以是第一平台10、第二平台20和操作平台30以外的其他平台中的存储空间,则第二平台20在接收到第二请求的情况下,可以直接从该其他平台获取已存储的参照表创建信息。
在另一可选实施例中,第一平台10还可以根据第一请求对应的请求路径,将生成的参照表创建信息返回至操作平台30,以供操作平台30将参照表创建信息存储至本地的指定存储空间。进一步可选地,在参照表创建信息存储在操作平台30本地的情况下,第二平台20在接收到第二请求的情况下,可以从操作平台30中对应的指定存储空间中获取参照表创建信息;或者,操作平台30在向第二平台20发送第二请求时,也可以同时将参照表创建信息一同发送至第二平台20,以供第二平台20基于参照表创建信息实现后续操作。关于参照表创建信息的存储方式,可以根据实际需求具体确定,在此不做限定。
在得到表结构同步信息的情况下,本申请实施例不限定基于表结构同步信息执行表结构修改操作的具体方式,可选地,第二平台20在生成表结构同步信息的情况下,可以直接根据表结构同步信息对待修改数据表执行对应的表结构修改操作。或者,第二平台20也可以将生成的表结构同步信息作为一种修改建议提供给指定对象,以供对数据表做维护工作的指定工作人员,基于该建议和实际需求,对待修改数据表执行对应的修改操作。基于此,在一可选实施例中,如图1c所示,本申请实施例提供的数据表管理***还可以包括处理平台40,用于获取第二平台20生成的表结构同步信息,以根据获取到的表结构同步信息,对待修改数据表执行对应的表结构修改操作。
需要说明的是,上述***实施例中的***架构仅为示例性说明,并不限于此,在实际应用中,***中互不相通但具有数据表对应关系的平台并不仅限于第一平台和第二平台,根据具体的业务需求,各平台的数量也会不同。例如,对于***稳定性要求极高的项目代码,在投入线上使用之前,可能需要经过多轮测试,假设,需要先经过研发及本部门测试人员的自测,在测试通过的情况下,还需要经过其他部门的验收测试,在验收测试通过后才能投入线上使用。那么,在这种***架构中,测试环境、验收环境和线上环境均包含具有对应关系的数据表,因此,***中包含具有数据表对应关系的各平台可以为第一平台、第二平台和第三平台。
又例如,在需要不同***之间配合共同完成研发工作的情况下,需要互相配合的各***之间保证数据的一致性,则在这种***架构中,具有数据表对应关系的各平台分别属于不同的***。假设,***1和***2共同负责研发工作,则对应的项目代码在上线使用之前,需要***1和***2配合共同完成测试工作,在这种情况下,第一平台可以所属于***1,第二平台可以所属于***2。对于具体的***架构以及各平台之间的关系可以参照上述示例,在此不再赘述。
根据上述实施例可知,***中不同平台中存在具有对应关系的数据表,这些对应的数据表可能存在表结构差异,因此,为了保证各平台的项目代码顺利执行,以及各平台之间数据处理结果的一致性,需要对不同平台之间对应的数据表做表结构同步处理。基于此,本申请实施例还提供一种跨平台的数据库表结构同步方法,该方法可以应用上述***中,以实现跨平台的数据表结构同步操作。
下面结合附图对本申请实施例提供的数据表结构同步方法进行说明。
图2a为本申请实施例提供的数据表结构同步方法的流程图,如图2a所示,方法包括:
S1、获取第一平台生成的参照表创建信息,参照表创建信息是根据待同步的多个源数据表对应的源表结构信息生成的,参照表创建信息包括多个参照表名;
S2、根据参照表创建信息,确定对应的参照表结构信息;
S3、针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名;
S4、根据多个目标表名,获取多个目标数据表对应的目标表结构信息;
S5、根据参照表结构信息和目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表;
S6、根据表结构差异信息,生成用于对待修改数据表执行表结构修改操作的表结构同步信息。
在本申请实施例中,为了实现不同平台之间表结构的一致性,需要基于第一平台中源数据表的表结构信息,确定第二平台中对应目标数据表中的待修改数据表以及对其进行表结构修改操作所依据的表结构同步信息。因此,为了确定源数据表的表结构,可以先获取由第一平台根据待同步的多个源数据表对应的源表结构信息,并根据源表结构信息生成对应的参照表创建信息,该参照表创建信息中包括多个参照表名,且每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的。关于第一平台如何获取源表结构信息以及生成对应的参照表创建信息的过程可以参见上述***实施例中的说明,在此不再赘述。
可选地,为了保证获取到的参照表创建信息的准确性,针对每个参照表名,在确定与其对应的源表名具有相同表名的目标表名时,可以先根据预设表名后缀标识,校验参照表创建信息中的每个参照表名,避免将其他信息误认是第一平台生成的参照表创建信息。进一步,在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名。例如,在获取到参照表创建信息的情况下,可以利用预设表名后缀标识与参照表创建信息中每个参照表名的后缀做比较,在确定二者一致的情况下,则当前获取到的是需要的参照表创建信息;否则,结束本次操作并输出对应获取失败的提示信息,以用于提示工作人员重新发起第二请求。
在本申请实施例中,不限定获取参照表创建信息的具体途径,根据第一平台在生成参照表创建信息之后存储位置的不同,第二平台获取参照表创建信息的途径也会不同。例如,在上述***架构中,第一平台在生成参照表创建信息之后没有按照第一请求对应的请求路径原路返回给操作平台,而是存储在其他平台对应的指定存储位置,则可以直接从该指定存储位置获取参照表创建信息。又例如,第一平台在生成参照表结构信息之后直接按照第一请求的请求路径返回给操作平台进行存储,则可以根据接收到的第二请求中是否包括参照表创建信息,确定直接第二请求中获取参照表创建信息,还是根据第二请求对应的请求路径,再从操作平台中指定的存储空间获取参照表创建信息,具体方式可以根据实际情况确定。
基于上述,在获取到参照表结构信息以及对应的目标表结构信息的情况下,便可以根据参照表结构信息和目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表。可选地,可以先将互相对应的参照表结构信息和目标表结构信息确定为一组;进一步,对比每组参照表结构信息和目标表结构信息,以确定至少一组表结构不同的目标对照组以及对应的表结构差异信息,进而,将每个目标对组中对应的目标数据表作为待修改数据表,根据每组目标对照组对应的表结构差异信息,可以生成用于对待修改数据表执行表结构修改操作修改SQL语句,作为表结构同步信息。
在本申请实施例中,每组目标对照组对应的表结构差异信息包括是否存在与参照数据表对应的目标数据表、存在的目标数据表中字段名称是否与参照数据表中字段名称一一对应、对应的字段属性是否全部相同。基于此,若确定不存在与参照数据表对应的目标数据表,说明第一平台中不存在与参照数据表对应的目标数据表,针对这种情况,可以生成用于创建对应的目标数据表的建表SQL语句。进一步,在确定存在与参照数据表对应的目标数据表的情况下,若确定存在的目标数据表中字段名称与参照数据表中字段名称不对应,则针对不对应的字段,可以生成用于修改字段名称的修改SQL语句;相应地,若确定对应的字段的属性不同,则针对属性不同的字段,可以生成用于修改字段属性的修改SQL语句。基于此,将上述生成的SQL语句汇总,即可得到用于对待修改数据表执行表结构修改操作的表结构同步信息。
在本申请实施例中,不限定表结构同步信息的存储方式,可选地,与参照表创建信息的存储方式类似,第二平台在生成表结构同步信息的情况下,还可以将生成的表结构同步信息存储到指定地址。
本申请实施例不限定该指定地址对应的具***置,可选地,指定地址对应的存储位置可以是第二平台以外的其他平台中的存储空间。例如,可以是图1c所示***架构中的处理平台中的存储空间,基于此,处理平台在确定需要对待修改数据表执行表结构修改操作的情况下,可以直接从本地获取表结构同步信息,以根据表结构同步信息对待修改数据表执行表结构修改操作。或者,指定地址对应的存储位置也可以是图1b所述***架构中的操作平台,第二平台可以根据第二请求对应的请求路径,将生成的表结构同步信息返回至操作平台,以供操作平台将表结构同步信息存储至本地的指定存储空间,并在需要执行表结构修改操作的情况下,由操作平台提供表结构同步信息。关于表结构同步信息的具体存储方式,可以根据实际需求确定,在此仅为示例性说明。
进一步可选地,在获取到参照表创建信息的情况下,若无需立即执行表结构同步操作,还可以先在第二平台本根据参照表创建信息创建对应的参照数据表,以用于在有表结构同步需求的情况下,基于已经创建的参照数据表获取对应的参照表结构信息,进而通过与对应的目标表结构信息进行对比,确定待修改的数据表以及对应的表结构同步信息。
可选地,本申请实施例中的参照表创建信息为可执行的建表SQL语句,基于此,可以采用代码组件化的方式,执行嵌入该建表SQL语句的第一目标程序代码,以在第二平台创建多个参照数据表。进一步,在创建了多个参照数据表的情况下,便可以根据多个参照数据表的参照表名,获取对应的参照表结构信息。相应地,同样可以采用代码组件化的方式,执行嵌入第一查询SQL语句的第二目标程序代码,以从第二平台获取对应的参照表结构信息,其中,第一查询SQL语句是根据多个参照表名确定的。
同样地,可以采用代码组件化的方式,通过执行嵌入第二查询SQL语句的第三目标程序代码,从第二平台获取多个目标数据表对应的目标表结构信息,其中,第二查询SQL语句是根据多个目标表名确定的。这样,在参照表结构信息和目标表结构信息均获取到的情况下,便可以根据参照表结构信息和目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表,以用于根据表结构差异信息在生成表结构同步信息的情况下,对待修改数据表执行对应的表结构修改操作。
基于上述,在得到表结构同步信息的情况下,为了恢复第二平台本地的数据表环境,还可以根据预设表名后缀标识,删除创建的多个参照数据表。可选地,可以先根据预设表名后缀标识,获取待删除的多个参照数据表分别对应的待删除参照表名;进一步,采用代码组件化的方式,执行嵌入删表SQL语句的第四目标程序代码,以从第二平台删除多个参照数据表,其中,删表SQL语句是根据多个待删除参照表名确定的。
需要说明的是,在上述实施例中,为了提升各平台的处理效率,以及降低各平台与数据库交互时数据资源的消耗,各平台在启动后,可以直接连接平台项目在启动时创建的数据库连接池,并从中获取可用的数据库连接,已通过获取到的数据库连接对数据表进行操作,无需每次操作数据都创建数据库连接,减少资源浪费。
基于上述实施例及***架构,下面结合附图对第一平台和第二平台的整体流程进行概述性说明。图2b为本申请实施例提供的应用于第一平台中第一接口的操作流程图,如图2b所示,第一接口在接收到第一请求的情况下,首先确定第一请求中是否包括预设表名后缀标识,并在确定不包括的情况下,采用默认的预设表名后缀标识执行后续操作。进一步,第一接口可以从平台项目启动时创建的数据库连接池中获取可用的数据库连接,以通过该连接访问源数据库,进而,通过执行获取源表结构信息的SQL语句从源数据库获取对应的源表结构信息,以及执行获取源表名的SQL语句,从源表结构信息中获取源数据表对应的源表名。
基于此,可以根据源表名和预设表名后缀标识生成对应的参照表名,以及根据参照表名和获取到的源表结构信息,生成对应的参照表创建信息。进一步,在得到参照表创建信息的情况下,可以对其进行存储,此时需要确定是否有对应的预设存储地址,若有,则将参照表结构信息存储到该预设地址对应的存储空间;否则,根据第一请求对应的路径信息返回至请求端。
图2c为本申请实施例提供的应用于第二平台中第二接口的操作流程图,如图2c所示,第二接口在接收到第二请求的情况下,首先确定第二请求中是否包括预设表名后缀标识,并在确定不包括的情况下,采用默认的预设表名后缀标识执行后续操作。进一步,第二接口可以从平台项目启动时创建的数据库连接池中获取可用的数据库连接,以通过该连接访问目标数据库。基于此,第二接口可以获取第一接口生成的参照表创建信息,以基于参照表创建信息执行后续操作。如图2c所示,在获取参照表创建信息之前,需要确定是否存在预设存储地址,若有,则从该预设存储地址对应的存储空间获取参照表创建信息,否则,从本地获取参照表创建信息。需要说明的是,第二接口从本地获取的参照表创建信息可以是从第二请求的发送端获取到本地的,也可以是事先存储到本地的,在此不做限定。
进一步,在获取到参照表创建信息的情况下,为了保证后续查找的目标数据表是正确的,需要确认当前获取到的参照表创建信息是否为第一平台生成的,因此,需要对参照表创建信息对应的每个参照表名进行校验。如图2c所示,可以根据预设表名后缀标识对参照表创建信息中的参照表名后缀进行校验,并在确定参照表名后缀与预设表名后缀标识一致的情况下,针对校验通过的参照表名创建对应的参照数据表,校验未通过,则输出对应的提示信息。基于此,针对已经创建的参照数据表,可以获取参照数据表的参照表结构信息和对应的目标数据表的目标表结构信息,比较二者的表结构是否一致,并在确定不一致的情况下,根据二者的表结构差异生成对应的表结构同步信息,该表结构同步信息可作为对当前处理的与参照数据表的表结构不一致的目标数据表进行表结构修改的依据。以此类推,针对参照表创建信息对应的每一个参照表名均做上述处理,直至确定均处理完毕,则将生成的所有表结构同步信息进行保存,以用于后续对第二平台中的目标数据表进行表结构修改的操作中。
图2d为基于本申请实施例提供的跨平台的数据库之间的数据表关系示意图,如图2d所示,本申请实施例的数据库之间的关系为:源数据库在第一平台,其中包括源数据,目标数据库在第二平台,其中包括目标数据表。基于此,第一平台可以根据源数据表的表结构信息生成对应的参照表创建信息,第二平台可以获取第一平台生成的参照表创建信息,并基于参照表创建信息在本地的目标数据库中创建对应的参照数据表并确定对应的目标数据表;进一步,通过获取参照数据表的参照表结构信息和目标数据表的目标表结构信息,以对参照数据表和目标数据表的表结构进行比较,可以确定需要修改表结构的待修改数据表,并生成对应的表结构同步信息,以用于后续对待修改数据表执行表修改操作中。
关于本申请实施例中第一平台和第二平台的详细处理过程可参见上述***实施例及方法实施例的说明,在此不再赘述。
在本申请实施例中,针对分别所属于第一平台和第二平台的源数据表和目标数据表,为了实现源数据表和目标数据表的表结构统一,首先,通过在第一平台基于源数据表的源表结构信息生成对应的参照表创建信息;进而,第二平台可以基于该参照表创建信息创建对应的参照数据表及确认对应的目标数据表,并根据参照数据表的参照表结构信息和目标数据表的目标表结构信息,确定参照数据表和目标数据表之间的表结构差异,进而生成对应的表结构同步信息;基于该表结构同步信息,可以实现对目标数据表的表结构修改。通过这种方式,可以实现在无需借助其他同步工具的基础上,以代码组件化的方式自动完成跨平台的表结构同步确认操作,并且对数据库的原始数据改动较小,整个实现过程不仅可以提升数据处理的效率和准确度,还有助于减少人力成本和资源损耗。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S1至步骤S6的执行主体可以为设备A;又比如,步骤S1的执行主体可以为设备A,步骤S2至步骤S6的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S1、S2等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
基于上述,本申请实施例还提供一种计算机设备,该计算机设备可以是上述***实施例中第二平台中的服务设备。图3为该计算机设备的主要功能模块之间的连接关系对应的结构示意图,如图3所示,计算机设备包括:处理器31以及存储有计算机程序的存储器32;其中,处理器31和存储器32可以是一个或多个。
存储器32,主要用于存储计算机程序,这些计算机程序可被处理器31执行,致使处理器31控制计算机设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器32还可被配置为存储其它各种数据以支持在计算机设备上的操作。这些数据的示例包括用于在计算机设备上操作的任何应用程序或方法的指令。
存储器32,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,并不限定处理器31的实现形态,例如可以是但不限于CPU、GPU或MCU等。处理器31可以看作是计算机设备的控制***,可用于执行存储器32中存储的计算机程序,以控制计算机设备实现相应功能、完成相应动作或任务。值得说明的是,根据计算机设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器32中存储的计算机程序也会有所不同,而处理器31执行不同计算机程序可控制计算机设备实现不同的功能、完成不同的动作或任务。
在一些可选实施例中,如图3所示,计算机设备还可包括:显示器33、电源组件34以及通信组件35等其它组件,显示器33用于显示车载图形用户界面。图3中仅示意性给出部分组件,并不意味着计算机设备只包括图3所示组件,针对不同的应用需求,计算机设备还可以包括其他组件,例如,在存在语音交互需求的情况下,如图3所示,计算机设备还可以包括音频组件36。关于计算机设备可包含的组件,具体可视计算机设备的产品形态而定,在此不做限定。
在本申请实施例中,当处理器31执行存储器32中的计算机程序时,以用于:获取第一平台生成的参照表创建信息,参照表创建信息是根据待同步的多个源数据表对应的源表结构信息生成的,参照表创建信息包括多个参照表名;根据参照表创建信息,确定对应的参照表结构信息;以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名;根据多个目标表名,获取多个目标数据表对应的目标表结构信息;根据参照表结构信息和目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表;根据表结构差异信息,生成用于对待修改数据表执行表结构修改操作的表结构同步信息。
在一可选实施例中,参照表创建信息中的每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的,针对每个参照表名,处理器31在确定与其对应的源表名具有相同表名的目标表名时,用于:根据预设表名后缀标识,校验参照表创建信息中的每个参照表名;以及在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名。
在一可选实施例中,处理器31在根据参照表结构信息和目标表结构信息,确定存在的表结构差异以及对应的待修改数据表时,用于:将互相对应的参照表结构信息和目标表结构信息确定为一组;对比每组中的参照表结构信息和目标表结构信息,确定至少一组表结构不同的目标对照组以及对应的表结构差异信息;将每个目标对照组中对应的目标数据表均作为待修改数据表。
在一可选实施例中,处理器31在根据表结构差异信息,生成用于对待修改数据表执行表结构修改操作的表结构同步信息时,用于:根据表结构差异信息,生成用于对待修改数据表执行表结构修改操作修改SQL语句,作为表结构同步信息。
在一可选实施例中,参照表创建信息为建表SQL语句,处理器31在根据参照表创建信息,确定对应的参照表结构信息之前,还用于:执行嵌入建表SQL语句的第一目标程序代码,以在第二平台创建多个参照数据表;相应地,确定对应的参照表结构信息,包括:执行嵌入第一查询SQL语句的第二目标程序代码,从第二平台获取对应的参照表结构信息,第一查询SQL语句是根据多个参照表名确定的。
在一可选实施例中,处理器31在根据多个目标表名,获取多个目标数据表对应的目标表结构信息时,用于:执行嵌入第二查询SQL语句的第三目标程序代码,从第二平台获取多个目标数据表对应的目标表结构信息,第二查询SQL语句是根据多个目标表名确定的。
在一可选实施例中,处理器31还用于:根据预设表名后缀标识,获取待删除的多个参照数据表分别对应的待删除参照表名;执行嵌入删表SQL语句的第四目标程序代码,以从第二平台删除多个参照数据表,删表SQL语句是根据多个待删除参照表名确定的。
需要说明的是,关于上述计算机设备中处理器的具体功能,可参见上述***实施例和方法实施例,在此不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序/指令的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算机设备执行的各步骤。
上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (8)
1.一种跨平台的数据表结构同步方法,其特征在于,适用于第二平台,所述方法包括:
获取第一平台生成的参照表创建信息,所述参照表创建信息是根据待同步的多个源数据表对应的源表结构信息生成的,所述参照表创建信息包括多个参照表名,所述参照表创建信息中的每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的,所述参照表创建信息为建表SQL语句;
执行嵌入所述建表SQL语句的第一目标程序代码,以在所述第二平台创建多个参照数据表;
根据所述参照表创建信息,确定对应的参照表结构信息,具体包括:执行嵌入第一查询SQL语句的第二目标程序代码,从所述第二平台获取对应的参照表结构信息,所述第一查询SQL语句是根据所述多个参照表名确定的;以及
针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,具体包括:根据所述预设表名后缀标识,校验所述参照表创建信息中的每个参照表名;以及,在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名;
根据多个目标表名,获取多个目标数据表对应的目标表结构信息;
根据所述参照表结构信息和所述目标表结构信息,确定存在的表结构差异信息以及对应的待修改数据表;
根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息。
2.根据权利要求1所述的方法,其特征在于,根据所述参照表结构信息和所述目标表结构信息,确定存在的表结构差异以及对应的待修改数据表,包括:
将互相对应的参照表结构信息和目标表结构信息确定为一组;
对比每组中的参照表结构信息和目标表结构信息,确定至少一组表结构不同的目标对照组以及对应的表结构差异信息;
将每个目标对照组中对应的目标数据表作为待修改数据表。
3.根据权利要求2所述的方法,其特征在于,根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息,包括:
根据所述表结构差异信息,生成用于对所述待修改数据表执行表结构修改操作修改SQL语句,作为表结构同步信息。
4.根据权利要求1所述的方法,其特征在于,根据多个目标表名,获取多个目标数据表对应的目标表结构信息,包括:
执行嵌入第二查询SQL语句的第三目标程序代码,从所述第二平台获取多个目标数据表对应的目标表结构信息,所述第二查询SQL语句是根据所述多个目标表名确定的。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述预设表名后缀标识,获取待删除的多个参照数据表分别对应的待删除参照表名;
执行嵌入删表SQL语句的第四目标程序代码,以从所述第二平台删除所述多个参照数据表,所述删表SQL语句是根据多个待删除参照表名确定的。
6.一种数据表管理***,其特征在于,包括:
第一平台,用于根据待同步的多个源数据表对应的源表结构信息生成对应的参照表创建信息,所述参照表创建信息中包括多个参照表名,每个参照表名是在其对应的源表名基础上添加预设表名后缀标识得到的;
第二平台,用于获取所述参照表创建信息,所述参照表创建信息为建表SQL语句;执行嵌入所述建表SQL语句的第一目标程序代码,创建多个参照数据表,根据所述参照表创建信息,确定对应的参照表结构信息,具体包括:执行嵌入第一查询SQL语句的第二目标程序代码,获取对应的参照表结构信息,所述第一查询SQL语句是根据所述多个参照表名确定的;以及针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名,具体包括:根据所述预设表名后缀标识,校验所述参照表创建信息中的每个参照表名;以及,在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名;根据多个目标表名,获取多个目标数据表对应的目标表结构信息;根据所述参照表结构信息和所述目标表结构信息,确定所述多个目标数据表中与多个参照数据表存在表结构差异的待修改数据表;根据所述表结构差异,生成用于对所述待修改数据表执行表结构修改操作的表结构同步信息。
7.根据权利要求6所述的***,其特征在于,所述第二平台在针对每个参照表名,确定与其对应的源表名具有相同表名的目标表名之时,用于:
根据所述预设表名后缀标识,校验所述参照表创建信息中的每个参照表名;以及
在校验通过的情况下,针对每个参照表名,删除其中的预设表名后缀标识,得到对应的目标表名。
8.一种计算机设备,其特征在于,包括:处理器和存储有计算机程序的存储器,在所述处理器执行所述计算机程序时,以用于实现如权利要求1-5任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310854898.8A CN116578651B (zh) | 2023-07-12 | 2023-07-12 | 数据表结构同步方法、***及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310854898.8A CN116578651B (zh) | 2023-07-12 | 2023-07-12 | 数据表结构同步方法、***及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116578651A CN116578651A (zh) | 2023-08-11 |
CN116578651B true CN116578651B (zh) | 2023-11-17 |
Family
ID=87538165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310854898.8A Active CN116578651B (zh) | 2023-07-12 | 2023-07-12 | 数据表结构同步方法、***及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578651B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及*** |
WO2019161645A1 (zh) * | 2018-02-24 | 2019-08-29 | 平安科技(深圳)有限公司 | 基于Shell的数据表提取方法、终端、设备及存储介质 |
-
2023
- 2023-07-12 CN CN202310854898.8A patent/CN116578651B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129478A (zh) * | 2011-04-26 | 2011-07-20 | 广州从兴电子开发有限公司 | 数据库同步方法及*** |
WO2019161645A1 (zh) * | 2018-02-24 | 2019-08-29 | 平安科技(深圳)有限公司 | 基于Shell的数据表提取方法、终端、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
基于元数据驱动的异构数据模型映射算法;袁满;陈星童;;东北林业大学学报(第12期);全文 * |
基于元数据驱动的通用数据迁移工具;任庆东;李天阳;袁满;许翰文;;大庆石油学院学报(第01期);全文 * |
异构数据库数据迁移测试软件的研究与实现;陈巍;刘艺雯;;安徽工程科技学院学报(自然科学版)(第04期);全文 * |
数据同步中差异数据捕获的设计与实现;孙广雨;山岚;;北京化工大学学报(自然科学版)(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116578651A (zh) | 2023-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095499B2 (en) | Optimization for multi-project package manager | |
CN104978191B (zh) | 应用部署方法和服务器 | |
US9092493B2 (en) | Adaptive warehouse data validation tool | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN112860798B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20200380962A1 (en) | Systems and methods for extraction of user intent from speech or text | |
CN109471647B (zh) | 一种数据的更新方法、装置、电子设备及可读介质 | |
CN113722394A (zh) | 数据同步方法、设备及存储介质 | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN110198327B (zh) | 一种数据传输方法及相关设备 | |
CN117370361B (zh) | 数据表操作方法、装置、电子设备和计算机可读介质 | |
US8538414B1 (en) | Mobile interaction with software test cases | |
CN116578651B (zh) | 数据表结构同步方法、***及设备 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN111209195B (zh) | 一种生成测试用例的方法及装置 | |
EP4220406B1 (en) | Action undo service based on cloud platform | |
CN116628085A (zh) | 数据库的同步处理方法、装置、电子设备及存储介质 | |
CN112988860B (zh) | 数据加速处理方法、装置及电子设备 | |
CN112346761B (zh) | 前端资源上线方法、设备、***及存储介质 | |
CN113961178A (zh) | Sdk接口测试方法、***及计算机可读存储介质 | |
CN114676152A (zh) | 一种工单管理方法、装置和电子设备 | |
CN113391794A (zh) | 一种开发协作服务***及方法 | |
CN114201484A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN111104409A (zh) | 一种数据库处理方法、装置、存储介质及电子设备 | |
CN117827865A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |