一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种适用于医院局域网环境下的程序升级方法及装置与流程

2021-11-09 21:35:00 来源:中国专利 TAG:
1.本发明涉及一种计算机程序的升级技术,特别涉及一种适用于医院局域网环境下的程序升级转移方法及装置。
背景技术
::2.目前各医院广泛使用嵌入式系统,嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。同时各医院内部设置有专门的系统管理人员,以应对医院内部多样的业务开发需求。为了不影响医院内嵌入式系统的正常使用,会在医院计算机或者服务器上单独设置独立于生产环境的开发环境,初始情况下开发环境与生产环境完全相同,生产环境用于医院医生、患者等不同用户日常使用,生成并管理大量业务数据。开发环境供专门的系统管理人员使用,用于系统管理人员及时根据业务需求或者管理需要,开发新的业务表单或者业务流程等。3.开发环境下系统管理人员可能会根据业务需要新增或修改业务表、表结构、视图、存储过程、函数、触发器等内容,使得开发环境与生产环境不一致,当需要将开发环境升级至生产环境时,技术人员通常需要针对修改点逐一编辑脚本,逐一执行升级脚本,对技术人员而言不仅升级工作量大,而且很难完全准确定位到所有修改的表单或者数据,容易造成升级遗漏;因此,如何简单、快速的将开发环境中的各种配置、信息等转移升级至生产环境,同时又能避免在转移升级过程中出现升级遗漏,是本领域技术人员所要解决的重要技术问题。技术实现要素:4.针对上述现有技术中所存在的技术问题,本发明的目的是:提出一种适用于医院局域网环境下的程序升级方法及装置,以解决上述问题。5.本发明解决其技术问题所采用的技术方案是:一种适用于医院局域网环境下的程序升级方法,包括如下步骤:s1、由开发环境向生产环境发出升级指令;s2、当生产环境接收到开发环境的升级指令后,采用cors通信方式在开发环境与生产环境之间建立通信连接;s3、通信连接建立后,由开发环境向生产环境执行表及表结构的同步;s4、表及表结构同步完成后,由开发环境向生产环境依次执行视图的同步;s5、视图同步完成后,由开发环境向生产环境依次执行存储过程的同步;s6、存储过程同步完成后,由开发环境向生产环境依次执行函数的同步;s7、函数同步完成后,由开发环境向生产环境依次执行触发器的同步;s8、触发器同步完成后,开发环境断开与生产环境的通信连接,并发出升级完成指令。6.进一步优选技术方案,所述表及表结构的同步步骤包括:s31、由开发环境向生产环境发出表及表结构同步指令;s32、由开发环境向生产环境更新非业务数据;所述非业务数据包括系统表数据和系统开关数据;s33、通过对比开发环境与生产环境中的表名,查找开发环境中新增的业务表;其中,表名为开发环境与生产环境中业务表唯一标识,即每个表名在开发环境与生产环境中有且仅有一张业务表与其对应;s34、遍历开发环境中的新增业务表,查找所有新增业务表的所有信息;所述新增业务表的所有信息包括:表名、字段名、字段类型、主键、外键;s35、根据新增业务表的所有信息生成建表语句;s36、将建表语句在生产环境中执行,生成新建业务表;s37、遍历开发环境中的非新增业务表,对比生产环境中同一张表的所有字段;s38、如果有新增字段则生成更新表结构语句,并将更新表结构语句在生产环境中执行,生成修改后的业务表;如果无新增字段则将开发环境中的表结构脚本在生产环境中执行,生成更新后的业务表;s39、由开发环境向生产环境发出表及表结构同步完成指令。7.进一步优选技术方案,所述视图的同步步骤包括:s41、由开发环境向生产环境发出视图同步指令;s42、将开发环境中的所有视图脚本在生产环境中执行;s43、查找生产环境中是否有相同的视图名,如果有,则替换掉原有视图,如果没有,则创建新视图;最终在生产环境中生成更新后的视图;s44、由开发环境向生产环境发出视图同步完成指令。8.进一步优选技术方案,所述存储过程的同步步骤包括:s51、由开发环境向生产环境发出存储过程同步指令;s52、将开发环境中的存储过程脚本在生产环境中执行;s53、查找生产环境中是否有相同的存储过程,如果有,则替换掉原有存储过程,如果没有,则创建新存储过程;最终在生产环境中生成更新后的存储过程;s54、由开发环境向生产环境发出存储过程同步完成指令。9.进一步优选技术方案,所述函数的同步步骤包括:s61、由开发环境向生产环境发出函数同步指令;s62、将开发环境中的函数脚本在生产环境中执行;s63、查找生产环境中是否有相同的函数名,如果有,则替换掉原有函数,如果没有,则创建新函数;最终在生产环境中生成更新后的函数;s64、由开发环境向生产环境发出函数同步完成指令。10.进一步优选技术方案,所述触发器的同步步骤包括:s71、由开发环境向生产环境发出触发器同步指令;s72、将开发环境中的触发器脚本在生产环境中执行;s73、查找生产环境中是否有相同的触发器,如果有,则替换掉原有触发器,如果没有,则创建新触发器;最终在生产环境中生成更新后的触发器;s74、由开发环境向生产环境发出触发器同步完成指令。11.一种适用于医院局域网环境下的程序升级装置,包括:存储器,用于存储计算机程序;处理器,用于在执行所述计算机程序时实现上述任一种程序升级方法的步骤。12.本发明的有益效果是:采用本方案在每次由开发环境向生产环境升级时,无需再单独编写升级程序,只需运行使用该程序升级转移方法的通用升级脚本即可,大大降低了技术人员的升级工作量。此外,无论开发环境中做过何种新增或修改,技术人员都无需再定位到所修改的表单或者数据,一一编写升级程序,使用该程序升级转移方法即可将开发环境中的所有新增或修改业务表、表结构、视图、存储过程、函数、触发器等内容全部升级转移至生产环境中,避免了升级遗漏。附图说明13.图1是本发明的整体流程结构图。14.图2是表及表结构同步的流程图。15.图3是视图同步的流程图。16.图4是存储过程同步的流程图。17.图5是函数同步的流程图。18.图6是触发器同步的流程图。具体实施方式19.以下结合附图。对本发明做进一步说明。20.一种适用于医院局域网环境下的程序升级方法,其实施流程如图1所示,包括以下步骤:s1、由开发环境向生产环境发出升级指令;在开发环境中的可视化界面上,设置升级指令按钮,当用户点击可视化界面中的升级指令按钮时,开发环境向生产环境发出一条升级指令。21.s2、当生产环境接收到开发环境的升级指令后,采用cors通信方式在开发环境与生产环境之间建立通信连接;当需要从开发环境向生产环境转移升级时,则需要跨域,跨域是指浏览器不允许当前页面的所在的源去请求另一个源的数据。源是指协议、端口、域名。只要这3个中有一个不同就是跨域。22.cors即跨源资源共享,它定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。这里一般需要后端配合,开启cors。23.一般各种语言都有类似的包。比如nodejs的koa2‑corsvarkoa=require('koa');//npminstallꢀ‑‑savekoa2‑corsvarcors=require('koa2‑cors');varapp=koa();//开启app.use(cors());这个方式解决的跨越问题支持开发环境和生产环境。24.s3、通信连接建立后,由开发环境向生产环境执行表及表结构的同步;表及表结构的同步步骤如图2所示,具体包括:s31、由开发环境向生产环境发出表及表结构同步指令;s32、由开发环境向生产环境更新非业务数据;非业务数据包括系统表数据和系统开关数据;例如系统开关,利用系统开关控制系统功能模块的启用/停止;s33、通过对比开发环境与生产环境中的表名,查找开发环境中新增的业务表;其中,表名为开发环境与生产环境中业务表唯一标识,即每个表名在开发环境与生产环境中有且仅有一张业务表与其对应。25.s34、遍历开发环境中的新增业务表,查找所有新增业务表的所有信息;例如包括:表名、字段名、字段类型、主键、外键等。26.s35、根据新增业务表的所有信息生成建表语句;例如:可以采用以下实施例自动生成建表语句:#自动调用建表语句def__init__(self,class_name,class_bases,class_dic):ꢀꢀꢀꢀ#print(self)ꢀꢀꢀꢀ#print(class_name)ꢀꢀꢀꢀ#print(class_bases)ꢀꢀꢀꢀtable_name=class_nameꢀꢀꢀꢀprint(class_dic)ꢀꢀꢀꢀcolumns=[]#createtable库名.表名(#字段名1字段的数据类型[(宽度)约束条件]ꢀꢀꢀꢀꢀꢀꢀ#sql='createtable表名(字段名字段的类型[(宽度)约束条件])'ꢀꢀꢀꢀꢀꢀ#明确表有哪些字段ꢀꢀꢀꢀꢀꢀ#表名能确定了,里面的name字段的类型[(宽度)约束条件]这些还不确定ꢀꢀꢀꢀꢀꢀ#用循环取出来,拼接成建表语句ꢀꢀꢀꢀꢀꢀꢀꢀfork,fieldinclass_dic.items():#items是把字典里面的k,v转成一个元组的形式,元组第一个是k,第二个是v,然后通过解压赋值赋值给他们两个ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀifisinstance(field,field):ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀfs='%s%s'%(field.name,field.column_type)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ#print(fs)ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀiffield.primary_key:ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀfs ='primarykey'ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀiffield.increment:ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀfs ='auto_increment'ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀcolumns.append(fs)ꢀꢀꢀꢀꢀꢀꢀꢀ#print(columns)ꢀꢀꢀꢀꢀꢀꢀꢀcolumns=','.join(columns)ꢀꢀꢀꢀꢀꢀꢀꢀ#print(columns)ꢀꢀꢀꢀꢀꢀꢀꢀ#生成最终的sql语句ꢀꢀꢀꢀꢀꢀꢀꢀ#sql=createtable表名(idintprimarykeyauto_increment,namevarchar(20))ꢀꢀꢀꢀꢀꢀꢀꢀsql=createtable%s(%s)%(table_name,columns)ꢀꢀꢀꢀꢀꢀꢀꢀprint(sql)s36、将建表语句在生产环境中执行,生成新建业务表;s37、遍历开发环境中的非新增业务表,对比生产环境中同一张表的所有字段;s38、如果有新增字段则生成更新表结构语句,并将更新表结构语句在生产环境中执行,生成修改后的业务表;如果无新增字段则将开发环境中的表结构脚本在生产环境中执行,生成更新后的业务表;s39、由开发环境向生产环境发出表及表结构同步完成指令。[0027]s4、表及表结构同步完成后,由开发环境向生产环境依次执行视图的同步;其中,视图的同步步骤如图3所示,具体包括:s41、由开发环境向生产环境发出视图同步指令;s42、将开发环境中的所有视图脚本在生产环境中执行;s43、查找生产环境中是否有相同的视图名,如果有,则替换掉原有视图,如果没有,则创建新视图;最终在生产环境中生成更新后的视图。[0028]s44、由开发环境向生产环境发出视图同步完成指令。[0029]s5、视图同步完成后,由开发环境向生产环境依次执行存储过程的同步;其中,存储过程的同步步骤如图4所示,具体包括:s51、由开发环境向生产环境发出存储过程同步指令;s52、将开发环境中的存储过程脚本在生产环境中执行;s53、查找生产环境中是否有相同的存储过程,如果有,则替换掉原有存储过程,如果没有,则创建新存储过程;最终在生产环境中生成更新后的存储过程;s54、由开发环境向生产环境发出存储过程同步完成指令。[0030]s6、存储过程同步完成后,由开发环境向生产环境依次执行函数的同步;其中,函数的同步步骤如图5所示,具体包括:s61、由开发环境向生产环境发出函数同步指令;s62、将开发环境中的函数脚本在生产环境中执行;s63、查找生产环境中是否有相同的函数名,如果有,则替换掉原有函数,如果没有,则创建新函数;最终在生产环境中生成更新后的函数;s64、由开发环境向生产环境发出函数同步完成指令。[0031]s7、函数同步完成后,由开发环境向生产环境依次执行触发器的同步;其中,触发器的同步步骤如图6所示,具体包括:s71、由开发环境向生产环境发出触发器同步指令;s72、将开发环境中的触发器脚本在生产环境中执行;s73、查找生产环境中是否有相同的触发器,如果有,则替换掉原有触发器,如果没有,则创建新触发器;最终在生产环境中生成更新后的触发器;s74、由开发环境向生产环境发出触发器同步完成指令。[0032]s8、触发器同步完成后,开发环境断开与生产环境的通信连接,并发出升级完成指令。[0033]此外,本技术还提供了执行上述计算机程序的一种适用于医院局域网环境下的程序升级装置,包括:存储器,用于存储计算机程序;处理器,用于在执行所述计算机程序时实现上述任一种程序升级方法的步骤。[0034]以上显示和描述了本方案的基本原理和主要特征和本方案的优点。本行业的技术人员应该了解,本方案不受上述实施例的限制,上述实施例和说明书中描述的只是说明本方案的原理,在不脱离本方案精神和范围的前提下,本方案还会有各种变化和改进,这些变化和改进都落入要求保护的本方案范围内。本方案要求保护范围由所附的权利要求书及其等效物界定。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献