CN108614868A - 一种数据库自动升级方法 - Google Patents

一种数据库自动升级方法 Download PDF

Info

Publication number
CN108614868A
CN108614868A CN201810336587.1A CN201810336587A CN108614868A CN 108614868 A CN108614868 A CN 108614868A CN 201810336587 A CN201810336587 A CN 201810336587A CN 108614868 A CN108614868 A CN 108614868A
Authority
CN
China
Prior art keywords
field
database
methods
checknewcolumn
behavior
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.)
Granted
Application number
CN201810336587.1A
Other languages
English (en)
Other versions
CN108614868B (zh
Inventor
郭艳杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuwo Technology Co Ltd
Original Assignee
Beijing Kuwo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kuwo Technology Co Ltd filed Critical Beijing Kuwo Technology Co Ltd
Priority to CN201810336587.1A priority Critical patent/CN108614868B/zh
Publication of CN108614868A publication Critical patent/CN108614868A/zh
Application granted granted Critical
Publication of CN108614868B publication Critical patent/CN108614868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据库自动升级方法,包括如下步骤:当数据库表字段添加行为触发时,发出添加字段请求,收到添加字段请求,解析当前数据库版本及目标数据库版本,直接在对应表添加字段,在调用insertModel方法过程中,如果产生错误isError为真,则当前数据插入失败,此时,调用checkNewColumn方法逐一检查是否存在需要添加的新字段,调用checkNewColumn类逐一检查待添加字段,按以下原则确定需添加字段有哪些:关键字key不在当前表的列中,关键字key需在属性的列表中,checkNewColumn类对确定需添加字段通过addNewColumn方法完成数据库表字段添加行为。本发明,流程简洁、效率高,通过字段添加行为高效完成数据库升级,对原有数据影响小,便于维护,用户体验好。

Description

一种数据库自动升级方法
技术领域
本发明涉及数据库迁移及升级技术领域,具体说是一种数据库自动升级方法。
背景技术
在iOS开发中,经常会遇到数据库升级,升级或涉及到修改、删除、增加表的某些字段。通常,数据库升级伴随着App版本更新,为了满足新版本App的需要,对数据库表结构改变的处理,必须给予考虑。
常规方案通常是:
1.每一次运行程序,判断数据库是否存在。如果不存在,创建数据库。如果存在,进行其他后续处理。
2.第一次安装App,创建数据库,并将版本号存入数据库中。同时保存一个当前版本号加1的字段到数据库中。
3.更新App,从数据库中读取到上一次保存的版本号字段。比如要升级为2,会直接从case2开始执行。修改完数据结构后,再一次将版本号字段存入数据库。
4.每一次数据库结构有更新,直接在后面加case语句即可。
但,升级还需确保数据库中已有的数据不丢失。尤其是在遇到数据库表字段添加行为的时候尤为重要。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种数据库自动升级方法,流程简洁、效率高,通过字段添加行为高效完成数据库升级,对原有数据影响小,便于维护,用户体验好。
为达到以上目的,本发明采取的技术方案是:
一种数据库自动升级方法,其特征在于,包括如下步骤:
当数据库表字段添加行为触发时,发出添加字段请求,
收到添加字段请求,解析当前数据库版本及目标数据库版本,直接在对应表添加字段,
在调用insertModel方法过程中,如果产生错误isError为真,则当前数据插入失败,此时,调用checkNewColumn方法逐一检查是否存在需要添加的新字段,
checkNewColumn类通过getTableAllCololumn方法获得当前表中全部列的信息,
checkNewColumn类通过getModelAllProperties方法获得Model中全部属性信息,
checkNewColumn类通过fmPersistentKeys方法,按以下原则确定需添加字段有哪些:
关键字key不在当前表的列中,
关键字key需在属性的列表中,
checkNewColumn类对确定需添加字段通过addNewColumn方法完成数据库表字段添加行为。
在上述技术方案的基础上,需添加字段对应的属性通过fmPersistentKeys方法传入。
在上述技术方案的基础上,完成数据库表字段添加行为后,更新目标表中全部列的信息。
在上述技术方案的基础上,
当插入新数据出错时,触发数据库表字段监测并添加行为,
或:
当获取model数据监测到未知属性时,触发数据库表字段添加行为。
本发明所述的数据库自动升级方法,流程简洁、效率高,通过字段添加行为高效完成数据库升级,对原有数据影响小,便于维护,用户体验好。
本发明所述自动升级尤指:客户端开发中常遇到的数据库表字段添加行为。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的数据库自动升级方法,包括如下步骤:
当数据库表字段添加行为触发时,发出添加字段请求,
收到添加字段请求,解析当前数据库版本及目标数据库版本,直接在对应表添加字段,
在调用insertModel方法过程中,如果产生错误isError为真,则当前数据插入失败,此时,调用checkNewColumn方法逐一检查是否存在需要添加的新字段,
checkNewColumn类通过getTableAllCololumn方法获得当前表中全部列的信息,
checkNewColumn类通过getModelAllProperties方法获得Model中全部属性信息,
checkNewColumn类通过fmPersistentKeys方法,按以下原则确定需添加字段有哪些:
关键字key不在当前表的列中,
关键字key需在属性的列表中,
checkNewColumn类对确定需添加字段通过addNewColumn方法完成数据库表字段添加行为。
在上述技术方案的基础上,需添加字段对应的属性通过fmPersistentKeys方法传入。
在上述技术方案的基础上,完成数据库表字段添加行为后,更新目标表中全部列的信息。
在上述技术方案的基础上,
当插入新数据出错时,触发数据库表字段监测并添加行为,
或:
当获取model数据监测到未知属性时,触发数据库表字段添加行为。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (4)

1.一种数据库自动升级方法,其特征在于,包括如下步骤:
当数据库表字段添加行为触发时,发出添加字段请求,
收到添加字段请求,解析当前数据库版本及目标数据库版本,直接在对应表添加字段,
在调用insertModel方法过程中,如果产生错误isError为真,则当前数据插入失败,此时,调用checkNewColumn方法逐一检查是否存在需要添加的新字段,
checkNewColumn类通过getTableAllCololumn方法获得当前表中全部列的信息,
checkNewColumn类通过getModelAllProperties方法获得Model中全部属性信息,
checkNewColumn类通过fmPersistentKeys方法,按以下原则确定需添加字段有哪些:
关键字key不在当前表的列中,
关键字key需在属性的列表中,
checkNewColumn类对确定需添加字段通过addNewColumn方法完成数据库表字段添加行为。
2.如权利要求1所述的数据库自动升级方法,其特征在于:需添加字段对应的属性通过fmPersistentKeys方法传入。
3.如权利要求1所述的数据库自动升级方法,其特征在于:完成数据库表字段添加行为后,更新目标表中全部列的信息。
4.如权利要求1所述的数据库自动升级方法,其特征在于:当插入新数据出错时,触发数据库表字段监测并添加行为,
或:
当获取model数据监测到未知属性时,触发数据库表字段添加行为。
CN201810336587.1A 2018-04-16 2018-04-16 一种数据库自动升级方法 Active CN108614868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810336587.1A CN108614868B (zh) 2018-04-16 2018-04-16 一种数据库自动升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810336587.1A CN108614868B (zh) 2018-04-16 2018-04-16 一种数据库自动升级方法

Publications (2)

Publication Number Publication Date
CN108614868A true CN108614868A (zh) 2018-10-02
CN108614868B CN108614868B (zh) 2021-09-17

Family

ID=63660171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810336587.1A Active CN108614868B (zh) 2018-04-16 2018-04-16 一种数据库自动升级方法

Country Status (1)

Country Link
CN (1) CN108614868B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046074A (zh) * 2019-12-13 2020-04-21 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN101499069A (zh) * 2008-02-02 2009-08-05 中兴通讯股份有限公司 内存数据库文件的更新方法及更新装置
CN102402559A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种数据库升级脚本的生成方法和装置
US8589451B1 (en) * 2012-05-24 2013-11-19 Sap Ag Systems and methods for generating a common data model for relational and object oriented databases
CN105224361A (zh) * 2015-09-15 2016-01-06 深圳市华讯方舟软件信息科技有限公司 一种对sqlite3型嵌入式数据库进行升级的方法及系统
CN105373631A (zh) * 2015-12-18 2016-03-02 河南思维自动化设备股份有限公司 基于SQLSever的数据库结构自动升级方法
CN106156052A (zh) * 2015-03-27 2016-11-23 中兴通讯股份有限公司 终端数据升级方法及装置
CN106502685A (zh) * 2016-11-01 2017-03-15 Tcl集团股份有限公司 一种数据库的升级方法及系统
CN106648679A (zh) * 2016-12-29 2017-05-10 南威软件股份有限公司 一种结构化数据的版本管理方法
CN106802817A (zh) * 2016-12-29 2017-06-06 杭州迪普科技股份有限公司 SQLite数据库的升级方法及装置
CN106844772A (zh) * 2017-02-28 2017-06-13 东软集团股份有限公司 应用数据库的更新方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN101499069A (zh) * 2008-02-02 2009-08-05 中兴通讯股份有限公司 内存数据库文件的更新方法及更新装置
CN102402559A (zh) * 2010-09-16 2012-04-04 中兴通讯股份有限公司 一种数据库升级脚本的生成方法和装置
US8589451B1 (en) * 2012-05-24 2013-11-19 Sap Ag Systems and methods for generating a common data model for relational and object oriented databases
CN106156052A (zh) * 2015-03-27 2016-11-23 中兴通讯股份有限公司 终端数据升级方法及装置
CN105224361A (zh) * 2015-09-15 2016-01-06 深圳市华讯方舟软件信息科技有限公司 一种对sqlite3型嵌入式数据库进行升级的方法及系统
CN105373631A (zh) * 2015-12-18 2016-03-02 河南思维自动化设备股份有限公司 基于SQLSever的数据库结构自动升级方法
CN106502685A (zh) * 2016-11-01 2017-03-15 Tcl集团股份有限公司 一种数据库的升级方法及系统
CN106648679A (zh) * 2016-12-29 2017-05-10 南威软件股份有限公司 一种结构化数据的版本管理方法
CN106802817A (zh) * 2016-12-29 2017-06-06 杭州迪普科技股份有限公司 SQLite数据库的升级方法及装置
CN106844772A (zh) * 2017-02-28 2017-06-13 东软集团股份有限公司 应用数据库的更新方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
E. GOKULAKANNAN: "Survey on privacy preserving updates on unidentified database", 《IEEE》 *
薛立俊: "一种数据库无版本管理方法的设计和实现", 《工业控制计算机》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046074A (zh) * 2019-12-13 2020-04-21 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质
CN111046074B (zh) * 2019-12-13 2023-09-01 北京百度网讯科技有限公司 流式数据处理方法、装置、设备和介质

Also Published As

Publication number Publication date
CN108614868B (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
CN104133878B (zh) 用户标签的生成方法和装置
CN109885581A (zh) 数据库的同步方法、装置、设备及存储介质
CN109446218A (zh) Sql语句生成方法、装置及计算机可读存储介质
CN106201552A (zh) 一种软件升级方法、客户端、服务器及系统
CN107800757B (zh) 用户行为记录方法及装置
CN102402559A (zh) 一种数据库升级脚本的生成方法和装置
US11693731B2 (en) System and methods for diagnosing and repairing a smart mobile device by disabling components
CN111008028B (zh) 一种软件升级方法、设备和存储介质
CN110232187A (zh) 企业名称相似度识别方法、装置、计算机设备和存储介质
CN108536745A (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
US11301221B2 (en) Rapid code compiling system
CN109002330A (zh) 一种识别uefi os启动项的方法、装置及设备
CN103995885A (zh) 实体名的识别方法和装置
US8296785B2 (en) Providing links between application programs
CN106033474A (zh) 一种数据同步更新方法、装置及电子设备
US8600990B2 (en) Interacting methods of data extraction
US7958083B2 (en) Interacting methods of data summarization
CN107391539B (zh) 事务处理方法、服务器和存储介质
CN108614868A (zh) 一种数据库自动升级方法
CN109582382B (zh) 配置信息的加载方法、装置、存储介质及终端设备
CN107015831A (zh) 一种基于服务器端升级的客户端升级管理方法及系统
CN104572661B (zh) 终端设备以及信息处理方法
CN104636471A (zh) 一种程序代码的查找方法及装置
US11169829B2 (en) Determining candidate patches for a computer software

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