CN110866012A - 表结构管理方法、装置、服务器及可读存储介质 - Google Patents
表结构管理方法、装置、服务器及可读存储介质 Download PDFInfo
- Publication number
- CN110866012A CN110866012A CN201911099120.0A CN201911099120A CN110866012A CN 110866012 A CN110866012 A CN 110866012A CN 201911099120 A CN201911099120 A CN 201911099120A CN 110866012 A CN110866012 A CN 110866012A
- Authority
- CN
- China
- Prior art keywords
- model definition
- table structure
- database
- model
- modification
- 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/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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种表结构管理方法、装置、服务器及可读存储介质,涉及计算机数据处理技术领域。该方法包括:响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到第一模型定义在修改后的第二模型定义,其中,第一模型定义与数据库中的第一表结构相关联,用于描述第一表结构;将第二模型定义同步至与第一模型定义对应的数据库中,以实现对数据库中的第一表结构的修改。在本方案中,利用模型定义来描述表结构,通过对模型定义进行修改,以实现对表结构的修改,然后将修改的模型定义同步至数据库中,实现修改的同步,从而无需对环境中的每个第一表结构逐一进行修改,从而提高效率,简化表结构修改操作的流程。
Description
技术领域
本发明涉及计算机数据处理技术领域,具体而言,涉及一种表结构管理方法、装置、服务器及可读存储介质。
背景技术
在以关系型数据库作为存储方案的网络(Web)开发过程中,随着功能和业务的不断变化,往往涉及到数据库表结构的改变。表结构即为定义了一个数据表的表名、表中的字段和表的记录形成的数据结构。目前,在现有的修改表结构的方式中,需要手动对每个环境中的数据库的表结构逐一修改,使得表结构修改的效率低。
发明内容
本申请提供一种表结构管理方法、装置、服务器及可读存储介质,能够改善数据库中的表结构修改的效率低的问题。
为了实现上述目的,本申请实施例所提供的技术方案如下所示:
第一方面,本申请实施例提供一种表结构管理方法,所述方法包括:
响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构;将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
在上述的实施方式中,利用模型定义来描述表结构,通过对模型定义进行修改,以实现对表结构的修改,然后将修改的模型定义同步至数据库中,实现修改的同步,从而无需对环境中的每个第一表结构逐一进行修改,从而提高效率,简化表结构修改操作的流程。
结合第一方面,在一些可选地实施方式中,所述方法还包括:
基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
在上述的实施方式中,通过在至少一个修改时间点存储对修改过程中的模型定义,从而能够得到不同修改时间点对应模型定义,有助于用户通过变更记录查找之前修改的模型定义。
结合第一方面,在一些可选地实施方式中,所述方法还包括:
根据所述用户通过所述ORM工具输入的回滚指令,从所述变更记录中确定一个第二模型定义;将根据所述变更记录确定的第二模型定义,同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
在上述的实施方式中,用户通过回滚指令可以从变更记录中查看到历史版本的模型定义,从而方便用户将选择的历史版本的模型定义作为当前的模型定义更新同步至数据库中。
结合第一方面,在一些可选地实施方式中,响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,包括:
当所述用户的数量为多个时,响应多个用户对应的操作指令;合并基于每个操作指令对所述第一模型定义的修改操作,得到所述第二模型定义。
在上述的实施方式中,通过将多个用户对模型定义的修改操作进行合并,避免遗漏部分用户对模型定义的修改操作,从而提高修改模型定义的可靠性。
结合第一方面,在一些可选地实施方式中,响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,包括:
当所述操作指令为删除指令时,从所述第一模型定义中删除与所述删除指令对应的内容,得到所述第二模型定义;当所述操作指令为添加指令时,在所述第一模型定义中添加与所述添加指令对应的内容,得到所述第二模型定义;当所述操作指令为创建指令时,在所述数据库中创建与所述创建指令对应的第一模型定义,得到所述第二模型定义。
在上述的实施方式中,通过操作指令可以完成对模型定义的创建、内容新增、内容删除等操作,并在完成修改操作后同步修改的内容,从而有助于简化用户对模型定义进行创建、内容新增、内容删除的操作流程。
结合第一方面,在一些可选地实施方式中,所述数据库中包括多个表结构,所述方法还包括:
从所述数据库中获取与所述第一表结构对应的整体表结构;基于所述整体表结构及代码生成模型,生成与所述整体表结构对应的业务代码。
在上述的实施方式中,通过代码生成模型基于整体表结构生成业务代码,有助于简化为整体表结构生成代码的操作,提高创建与整体表结构对应的业务代码的效率。
第二方面,本申请实施例还提供一种表结构管理装置,所述装置包括:
响应修改单元,用于响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构;
数据同步单元,用于将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
结合第二方面,在一些可选地实施方式中,所述装置还包括记录生成单元,用于:
基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
第三方面,本申请实施例还提供一种服务器,所述服务器包括相互耦合的存储器、处理器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述服务器执行如上述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的终端设备与服务器通信连接的示意图。
图2为本申请实施例提供的服务器的方框示意图。
图3为本申请实施例提供的表结构管理方法的流程示意。
图4为本申请实施例提供的数据库中的表结构的示意图。
图5为本申请实施例提供的表结构管理装置的功能框图。
图标:10-服务器;11-处理模块;12-存储模块;13-通信模块;20-用户终端;100-表结构管理装置;110-响应修改单元;120-数据同步单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前数据库表结构的变化(新建,修改,删除)可以由数据库描述语言(DataDefinition Language,DDL)来表示,通常由开发人员手动维护项目中的表结构变更和回滚DDL语句。DDL往往是碎片化,每次变更数据表结构,就需要记录表结构变更DDL语句。DDL有着单一依赖关系,并需要严格按照顺序执行,若要修改表结构,则需要对环境中的每个表结构对应的DDL进行更改,从而使得表结构修改的效率低。
鉴于上述问题,本申请申请人经过长期研究探索,提出以下实施例以解决上述问题。下面结合附图,对本申请实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请结合参照图1和图2,本申请实施例提供一种服务器10,服务器10可以通过网络与一个或多个用户终端20建立通信连接,以进行数据交互。与服务器10通信连接的用户终端20的数量可以根据实际情况进行设置,这里不做具体限定。用于建立通信连接的网络可以是,但不限于,有线网络或无线网络。
在本实施例中,服务器10可以包括相互耦合的存储模块12、处理模块11,存储模块12内存储计算机程序,当所述计算机程序被所述处理模块11执行时,使得服务器10执行下述的表结构管理方法。
在本实施例中,服务器10还可以包括通信模块13,处理模块11、存储模块12、通信模块13各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
处理模块11可以是一种集成电路芯片,具有信号的处理能力。上述处理模块11可以是通用处理器。例如,该处理器可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
存储模块12可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块12可以用于存储各类表结构数据、模型定义等。当然,存储模块12还可以用于存储程序,处理模块11在接收到执行指令后,执行该程序。
通信模块13用于通过网络建立服务器10与用户终端20的通信连接,并通过网络收发数据。
用户终端20可以是,但不限于,智能手机、个人电脑(Personal Computer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(MobileInternet Device,MID)等。
可以理解的是,图2所示的结构仅为服务器10的一种结构示意图,服务器10还可以包括比图2所示更多的组件。图2中所示的各组件可以采用硬件、软件或其组合实现。
请参照图3,本申请实施例还提供一种表结构管理方法,可以应用于上述的服务器10,能够改善对数据库中的表结构修改的效率低的问题。其中,表结构管理方法可以包括步骤S210、步骤S220。
步骤S210,响应用户通过ORM(Object Relational Mapping,对象与关系型数据库映射)工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构;
步骤S220,将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
在本实施例中,第一模型定义、第二模型定义、第一表结构、第二表结构在不同的场景下,需要根据实际情况进行理解。例如,在图3中,第一模型定义可理解为模型定义在进行当前修改操作前的模型定义,第二模型定义可理解为模型定义在执行完当前修改操作后得到的模型定义,同样地,第一表结构可理解为表结构在进行修改操作前的表结构,第二表结构可以理解为表结构在执行完修改后的表结构。在图4中,第一模型定义可理解为第一表结构(用户表)的模型定义,第二模型定义可理解为第二表结构(订单表)的模型定义,第三模型定义可理解为第三表结构(属性表)的模型定义。
另外,模型定义可以设置有身份标识,不同的模型定义可以具有不同的身份标识,同一个模型定义在修改期间,其身份标识保持不变。该身份标识可以根据实际情况进行设置,可以为数字串、汉字、或其他字符等。
数据库中的表结构可以用Python代码定义和描述,模型定义可理解为与表结构对应的Python代码,模型定义与表结构一一对应,是表结构的另一种的完整描述。ORM工具包括但不限于Django ORM工具、PeeweeORM工具,或其他Python ORM工具。Django是一个开源Python语言的Web后台框架。Django ORM能够结合关系型数据库,自动管理数据库表结构变更历史,并自动将表结构的变更同步到各个环境的数据库中,其中,各个环境为可理解为同一个表结构的代码对应的一个或多个运行环境,例如表结构的代码的运行环境为Python程序代码的运行环境,或其他运行环境,这里不再赘述。
可理解地,服务器10与用户终端20上均安装或存储有相应的ORM工具,用户终端20侧的ORM工具可以供用户输入操作指令,该操作指令可以用于创建、更改模型定义。服务器10侧的ORM工具在接收到用户输入的操作指令后,可以响应该操作指令对应的操作内容,以创建、修改模型定义,然后将创建、修改的模型定义同步至相应的环境中。
在上述的实施方式中,利用模型定义来描述表结构,通过对模型定义进行修改,以实现对表结构的修改,然后基于ORM工具将修改的模型定义同步至数据库中,实现修改的同步,从而无需对环境中的每个第一表结构逐一进行修改,从而提高效率,简化表结构修改操作的流程。
可理解地,在步骤S220中,由服务器10侧的ORM工具将第二模型定义同步至与第一模型定义对应的数据库中。可理解地,一个表结构可以被复制成多个以供多个数据库应用,而通过修改并同步表结构的模型定义,可以将修改后的表结构进行同步更新,从而能够简化表结构的修改操作。
在本实施例中,在用户修改模型定义期间,服务器10可以存储多个不同版本的模型定义,每个版本的模型定义与修改的时间点相对应。
作为一种可选的实施方式,方法还可以包括:基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
例如,当服务器10接收到用户通过ORM工具输入的用于保存当前所修改的模型定义的操作指令时,服务器10便会基于该操作指令,保存当前的模型定义。在修改模型定义期间,若用户先后进行了多次用于保存模型定义操作,则服务器10可以保存用户每次执行保存操作对应的模型定义。
又例如,在修改模型定义期间,服务器10可以每隔指定时长定时保存一次模型定义。若在修改模型定义期间的时间范围内存在多个指定时长,服务器10便会先后多次存储模型定义,从而能够得到在多个保存时间点对应的模型定义。其中,指定时长可以根据实际情况进行设置,例如可以为10分钟、20分钟、1小时等时长。
作为一种可选的实施方式,在修改模型定义期间,若服务器10存储有多个具有相同身份标识的模型定义,服务器10可以比对多个具有相同身份标识的模型定义的内容,以判断多个具有相同身份标识的模型定义中是否存在内容相同的模型定义,若存在内容相同的模型定义,则在内容相同的模型定义中选择一个进行保存,删除内容相同的模型定义中的其余模型定义,以降低服务器10存储模型定义所需的存储空间。模型定义的内容可以理解为Python代码,可以根据实际情况进行设置,这里不作具体限定。
作为一种可选的实施方式,在修改模型定义期间,若服务器10存储有多个具有相同身份标识的模型定义,服务器10可以判断存储的具有相同身份标识的模型定义的数量,若该数量大于预设阈值,则保留存储时间离当前最近数量为预设阈值的模型定义,删除具有相同身份标识的其余的模型定义。其中,预设阈值可以根据实际情况进行设置,例如预设阈值可以为10个、20个等数量。例如,预设阈值为10,若检测到具有相同身份标识的模型定义的数量为12个,则保留最后存储的10个模型定义,删除最先存储的2个模型定义,以降低服务器10存储模型定义所需的存储空间。
作为一种可选的实施方式,方法还可以包括:根据所述用户通过所述ORM工具输入的回滚指令,从所述变更记录中确定一个第二模型定义;将根据所述变更记录确定的第二模型定义,同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
在本实施例中,若用户需要查看一个模型定义(可以称为目标模型定义,即具有相同的指定身份标识的模型定义,该指定身份标识可以根据实际情况进行设置)在修改期间的历史版本,用户可以通过用户终端20,利用ORM工具输入的回滚指令,该回滚指令可以供用户查看目标模型定义的一个或多个历史版本。当用户需要将当前的模型定义变更为历史中的某个模型定义时(例如,当前的模型定义出错,需要回溯至历史中的某个目标模型定义),在用户通过回滚指令查阅历史版本的目标模型定义期间,用户可以通过比对各个历史版本中目标模型定义的内容,从而确定出需要回滚的历史版本中的目标模型定义,然后将确定出需要回滚的历史版本中的目标模型定义作为当前目标模型定义,并同步至各个数据库中。
在上述的实施方式中,用户通过回滚指令可以从变更记录中查看到历史版本的模型定义,从而方便用户将选择的历史版本的模型定义作为当前的模型定义更新同步至数据库中。基于此,用户无需针对各个环境中的表结构的DDL单独进行修改,能够简化表结构的回滚操作,从而有助于提高表结构修改的效率。
请参见图4,所示的表结构仅为便于理解方案的示意图,可以理解为商品管理过程中需要用到的表结构。需要说明的是,用户可以根据实际情况创建不同于图4所示的表结构。
作为一种可选的实施方式,步骤S210可以包括:当所述用户的数量为多个时,响应多个用户对应的操作指令;合并基于每个操作指令对所述第一模型定义的修改操作,得到所述第二模型定义。
可理解地,在修改表结构期间,若同时存在着多个用户对表结构进行修改,通常而言,不同的用户所负责修改的表结构的区域不同,或修改的表结构不同。例如,在图4中,在用户表中,用户A负责修改ID区域,用户B负责修改Username区域。或者,用户A负责用户表的修改,用户B负责订单表的修改。
当存在多个用户针对同一个模型定义(表结构)进行修改时,由于各用户所修改的区域不相同,服务器10可以保存每个用户对模型定义所作的修改,并将修改的内容进行合并,从而得到修改后的模型定义。
当用户A和用户B同时基于V1版本的模型定义分别对表结构进行修改,生成了V2和V3版本;系统检测到V2和V3有同一个父版本时,可以自动合并V2和V3,并生成新的V4版本的模型定义。基于此,可以避免在多人修改期间,因只保存了一部分用户的修改操作,而未保存所有用户的修改内容所造成修改遗漏的问题。
作为一种可选的实施方式,步骤S210可以包括:
当所述操作指令为删除指令时,从所述第一模型定义中删除与所述删除指令对应的内容,得到所述第二模型定义;
当所述操作指令为添加指令时,在所述第一模型定义中添加与所述添加指令对应的内容,得到所述第二模型定义;
当所述操作指令为创建指令时,在所述数据库中创建与所述创建指令对应的第一模型定义,得到所述第二模型定义。
在本实施例中,用户利用用户终端20可以根据实际情况输入相应的操作指令。该操作指令可以为用于删除模型定义中的部分或全部内容的删除指令,或者为用于在模型定义中添加新内容的添加指令,或者为用于创建新的模型定义的创建指令。可理解地,用户对模型定义的修改操作包括创建新的模型定义(即创建新的表结构)、添加新内容到模型定义中、删除模型定义中的部分内容或删除整个模型定义,修改操作所包括的内容可以根据实际情况进行设置,这里不作具体限定。
在上述的实施方式中,通过操作指令可以完成对模型定义的创建、内容新增、内容删除等操作,并在完成修改操作后同步修改的内容,从而有助于简化用户对模型定义进行创建、内容新增、内容删除的操作流程。
作为一种可选的实施方式,所述数据库中包括多个表结构,所述方法还可以包括:从所述数据库中获取与所述第一表结构对应的整体表结构;基于所述整体表结构及代码生成模型,生成与所述整体表结构对应的业务代码。
在本实施例中,代码生成模型包括但不限于Xorm工具、Mybatis工具等可以根据表结构自动生成代码的工具,整体表结构可理解为一个业务相关联的所有表结构。例如,若一个业务包括如图4所示的用户表、订单表、属性表,则表示该业务的整体表结构包括用户表、订单表、属性表。而,代码生成模型可以基于整体表结构自动生成与整体表结构对应的业务代码。该业务代码可以包括数据库模型模板和数据库增、删、改、查等业务代码。
在上述的实施方式中,通过代码生成模型基于整体表结构生成业务代码,有助于简化为整体表结构生成代码的操作,提高创建与整体表结构对应的业务代码的效率。
基于上述设计,在静态语言Web系统开发中,能避免开发人员手动维护修改、创建、回滚数据库的DDL语句,避免多人协作中表结构修改冲突,避免手动同步多个环境中的数据库表结构变更,避免手动回滚数据库表结构;另外,使用代码生成工具,无需手动维护表结构字段映射文件和增、删、改、查代码,避免了由于人为因素造成的遗漏和缺陷,提高软件工程生产效率。
请参照图5,本申请实施例还提供一种表结构管理装置100,可以应用于上述的服务器10,用于执行或实现表结构管理方法的各步骤。表结构管理装置100包括至少一个可以软件或固件(firmware)的形式存储于存储模块12中或固化在服务器10操作系统(Operating System,OS)中的软件功能模块。例如,表结构管理装置100可以包括响应修改单元110、数据同步单元120。
响应修改单元110,用于响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构。
数据同步单元120,用于将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
可选地,表结构管理装置100还可以包括记录生成单元,用于:基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
可选地,表结构管理装置100还可以包括确定单元,用于根据所述用户通过所述ORM工具输入的回滚指令,从所述变更记录中确定一个第二模型定义;数据同步单元120还用于将根据所述变更记录确定的第二模型定义,同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
可选地,响应修改单元110还用于:当所述用户的数量为多个时,响应多个用户对应的操作指令;合并基于每个操作指令对所述第一模型定义的修改操作,得到所述第二模型定义。
可选地,响应修改单元110还用于:
当所述操作指令为删除指令时,从所述第一模型定义中删除与所述删除指令对应的内容,得到所述第二模型定义;
当所述操作指令为添加指令时,在所述第一模型定义中添加与所述添加指令对应的内容,得到所述第二模型定义;
当所述操作指令为创建指令时,在所述数据库中创建与所述创建指令对应的第一模型定义,得到所述第二模型定义。
可选地,所述数据库中包括多个表结构,表结构管理装置100还可以包括获取单元及代码生成单元。获取单元用于从所述数据库中获取与所述第一表结构对应的整体表结构;代码生成单元用于基于所述整体表结构及代码生成模型,生成与所述整体表结构对应的业务代码。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的表结构管理装置100、服务器10的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
本申请实施例还提供一种计算机可读存储介质。可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的表结构管理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请提供一种表结构管理方法、装置、服务器及可读存储介质。该方法包括:响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到第一模型定义在修改后的第二模型定义,其中,第一模型定义与数据库中的第一表结构相关联,用于描述第一表结构;将第二模型定义同步至与第一模型定义对应的数据库中,以实现对数据库中的第一表结构的修改。在本方案中,利用模型定义来描述表结构,通过对模型定义进行修改,以实现对表结构的修改,然后将修改的模型定义同步至数据库中,实现修改的同步,从而无需对环境中的每个第一表结构逐一进行修改,从而提高效率,简化表结构修改操作的流程。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种表结构管理方法,其特征在于,所述方法包括:
响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构;
将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述用户通过所述ORM工具输入的回滚指令,从所述变更记录中确定一个第二模型定义;
将根据所述变更记录确定的第二模型定义,同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
4.根据权利要求1所述的方法,其特征在于,响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,包括:
当所述用户的数量为多个时,响应多个用户对应的操作指令;
合并基于每个操作指令对所述第一模型定义的修改操作,得到所述第二模型定义。
5.根据权利要求1所述的方法,其特征在于,响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,包括:
当所述操作指令为删除指令时,从所述第一模型定义中删除与所述删除指令对应的内容,得到所述第二模型定义;
当所述操作指令为添加指令时,在所述第一模型定义中添加与所述添加指令对应的内容,得到所述第二模型定义;
当所述操作指令为创建指令时,在所述数据库中创建与所述创建指令对应的第一模型定义,得到所述第二模型定义。
6.根据权利要求1所述的方法,其特征在于,所述数据库中包括多个表结构,所述方法还包括:
从所述数据库中获取与所述第一表结构对应的整体表结构;
基于所述整体表结构及代码生成模型,生成与所述整体表结构对应的业务代码。
7.一种表结构管理装置,其特征在于,所述装置包括:
响应修改单元,用于响应用户通过ORM工具输入的操作指令,对第一模型定义进行修改,得到所述第一模型定义在修改后的第二模型定义,其中,所述第一模型定义与数据库中的第一表结构相关联,用于描述所述第一表结构;
数据同步单元,用于将所述第二模型定义同步至与所述第一模型定义对应的数据库中,以实现对所述数据库中的第一表结构的修改。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括记录生成单元,用于:
基于修改所述第一模型定义的时间生成变更记录,所述变更记录包括在修改所述第一模型定义期间,在至少一个修改时间点存储的所述第一模型定义的至少一个第二模型定义,所述至少一个第二模型定义与所述至少一个修改时间点一一对应。
9.一种服务器,其特征在于,所述服务器包括相互耦合的存储器、处理器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述服务器执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911099120.0A CN110866012A (zh) | 2019-11-11 | 2019-11-11 | 表结构管理方法、装置、服务器及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911099120.0A CN110866012A (zh) | 2019-11-11 | 2019-11-11 | 表结构管理方法、装置、服务器及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866012A true CN110866012A (zh) | 2020-03-06 |
Family
ID=69653847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911099120.0A Pending CN110866012A (zh) | 2019-11-11 | 2019-11-11 | 表结构管理方法、装置、服务器及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866012A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486990A (zh) * | 2020-11-27 | 2021-03-12 | 山东浪潮通软信息科技有限公司 | 一种根据模型描述同步数据库表结构的方法及设备 |
CN113486010A (zh) * | 2021-07-01 | 2021-10-08 | 远光软件股份有限公司 | 数据库的同步方法、装置、服务器和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874388A (zh) * | 2017-01-11 | 2017-06-20 | 中科院微电子研究所昆山分所 | 一种基于关系型数据库的异构系统数据级联操作自动构建方法 |
CN106933837A (zh) * | 2015-12-29 | 2017-07-07 | 航天信息股份有限公司 | 一种数据库表模型及创建方法 |
CN107515933A (zh) * | 2017-08-29 | 2017-12-26 | 平安科技(深圳)有限公司 | 修改源数据库表结构的方法、服务器、系统及存储介质 |
WO2019019766A1 (zh) * | 2017-07-25 | 2019-01-31 | 平安科技(深圳)有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN110069244A (zh) * | 2019-03-11 | 2019-07-30 | 新奥特(北京)视频技术有限公司 | 一种数据库系统 |
-
2019
- 2019-11-11 CN CN201911099120.0A patent/CN110866012A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933837A (zh) * | 2015-12-29 | 2017-07-07 | 航天信息股份有限公司 | 一种数据库表模型及创建方法 |
CN106874388A (zh) * | 2017-01-11 | 2017-06-20 | 中科院微电子研究所昆山分所 | 一种基于关系型数据库的异构系统数据级联操作自动构建方法 |
WO2019019766A1 (zh) * | 2017-07-25 | 2019-01-31 | 平安科技(深圳)有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN107515933A (zh) * | 2017-08-29 | 2017-12-26 | 平安科技(深圳)有限公司 | 修改源数据库表结构的方法、服务器、系统及存储介质 |
CN110069244A (zh) * | 2019-03-11 | 2019-07-30 | 新奥特(北京)视频技术有限公司 | 一种数据库系统 |
Non-Patent Citations (3)
Title |
---|
LSYHHHHH: ""Django - ORM数据库操作-表结构、单表操作"", 《CSDN》 * |
美丽DE大海: ""MyBatis Generator生成代码的四种方式"", 《CSDN》 * |
追赶菜鸟: ""Django ORM 事务 回滚"", 《博客园》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486990A (zh) * | 2020-11-27 | 2021-03-12 | 山东浪潮通软信息科技有限公司 | 一种根据模型描述同步数据库表结构的方法及设备 |
CN112486990B (zh) * | 2020-11-27 | 2023-05-02 | 浪潮通用软件有限公司 | 一种根据模型描述同步数据库表结构的方法及设备 |
CN113486010A (zh) * | 2021-07-01 | 2021-10-08 | 远光软件股份有限公司 | 数据库的同步方法、装置、服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648994B (zh) | 一种备份操作日志的方法,设备和系统 | |
CN106874281B (zh) | 实现数据库读写分离的方法和装置 | |
CN111068328B (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN110347399B (zh) | 数据处理方法、实时计算系统以及信息系统 | |
CN107329765B (zh) | 程序文件处理方法及装置 | |
CA2956207C (en) | Program code comparison and reporting | |
CN107423404B (zh) | 流程实例数据同步处理方法和装置 | |
US11526475B2 (en) | Code generator platform for data transformation | |
CN110955410A (zh) | 一种代码自动生成方法、装置、设备及介质 | |
CN110866012A (zh) | 表结构管理方法、装置、服务器及可读存储介质 | |
CN115237436A (zh) | 应用部署方法、装置、电子设备及可读存储介质 | |
CN110597821B (zh) | 数据仓库表结构变更方法及装置 | |
CN114020840A (zh) | 一种数据处理方法、装置、服务器、存储介质及产品 | |
CN106776824B (zh) | Android数据库的升级方法及系统 | |
US20240143658A1 (en) | Methods and apparatuses for inserting data into graph database | |
JP2016143134A (ja) | 関連情報提供方法、関連情報提供装置及び関連情報提供プログラム | |
CN116185389A (zh) | 一种代码生成方法、装置、电子设备及介质 | |
CN114168119B (zh) | 代码文件编辑方法、装置、电子设备以及存储介质 | |
CN110555185A (zh) | 基于pc客户端的页面定制方法及系统 | |
CN107644103B (zh) | 一种可追溯信息来源的信息存储的方法和系统 | |
CN112860248B (zh) | 源代码生成方法及装置 | |
CN111080250B (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
CN113448852A (zh) | 一种测试案例的获取方法、装置、电子设备及存储介质 | |
CN114365049A (zh) | 使用生产数据快速建模的方法、系统、和存储介质 | |
CN116775171B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |