CN106776824B - Android数据库的升级方法及系统 - Google Patents

Android数据库的升级方法及系统 Download PDF

Info

Publication number
CN106776824B
CN106776824B CN201611058737.4A CN201611058737A CN106776824B CN 106776824 B CN106776824 B CN 106776824B CN 201611058737 A CN201611058737 A CN 201611058737A CN 106776824 B CN106776824 B CN 106776824B
Authority
CN
China
Prior art keywords
data
upgrading
database
upgraded
changed
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
Application number
CN201611058737.4A
Other languages
English (en)
Other versions
CN106776824A (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611058737.4A priority Critical patent/CN106776824B/zh
Publication of CN106776824A publication Critical patent/CN106776824A/zh
Application granted granted Critical
Publication of CN106776824B publication Critical patent/CN106776824B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Android数据库的升级方法及系统,涉及Android数据库的升级领域。该方法的步骤为:在数据升级文件中设置升级后的数据库版本、新增需要升级的数据表、根据指定的配置文件生成对应的升级表;进行数据库升级时,获取数据升级文件,新增的数据表和升级表;在需要升级的数据库中添加新增的数据表,将升级表与对应的数据表进行替换,根据升级后的数据库版本更新原有的数据库版本。本发明能够根据升级后的数据库与需要升级的数据库的区别,针对性的设置升级配置文件和新增数据表,进而实现精准而快速的升级数据库,不仅简化了数据库升级的操作过程,而且缩短了数据库升级的操作时间。

Description

Android数据库的升级方法及系统
技术领域
本发明涉及Android数据库的升级领域,具体涉及一种Android数据库的升级方法及系统。
背景技术
Android数据库是开发Android应用时必不可少的工具,在Android应用后续的迭代开发中,会对数据库中的数据进行升级(例如更新和替换数据),目前,现有的对数据库中的数据进行升级的方法为两种:1、删除原有数据后重新创建新数据,2、编写自动更新数据库的代码。
但是,以上2种方法分别存在以下缺陷:
(1)对于删除原有数据后重新创建新数据的方法而言,该方法虽然操作比较方便,但是会遗失原有的数据,进而使得原有的数据无法查询。
(2)编写大量自动更新数据的代码的操作过程比较复杂,操作时间较长,而且不一定能够保证定义的代码能够精准实现数据更新。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:根据升级后的数据库与需要升级的数据库的区别,针对性的设置升级配置文件和新增数据表,进而实现精准而快速的升级数据库,不仅简化了数据库升级的操作过程,而且缩短了数据库升级的操作时间。
为达到以上目的,本发明提供的Android数据库的升级方法,包括以下步骤:
步骤A:创建需要升级的数据库的数据升级文件,在数据升级文件中设置升级后的数据库版本;
步骤B:当与需要升级的数据库相比,升级后的数据库新增了至少1张数据表时,将升级后的数据库中新增的所有数据表,全部导入至数据升级文件中;
步骤C:当与需要升级的数据库相比,升级后的数据库改变了已经存在的数据表的数据类型时,制定配置文件,配置文件中包括升级后的数据库中改变的所有数据表的更新信息,更新信息包括数据表版本、数据表名称、数据表列的原有名称和改变之后的名称、改变数据的数据集、改变数据的原有数据类型和改变之后的数据类型,转到步骤D;
步骤D:为每一份需要改变的数据表,对应创建一份数据相同的升级表,升级表的属性为数据类型可更改;根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据;将每一份升级表均保存至数据升级文件中;
步骤E:进行数据库升级时,获取数据升级文件,得到升级后的数据库版本和升级数据,根据升级数据对数据库进行升级,根据升级后的数据库版本更新原有的数据库版本。
与现有技术相比,本发明的优点在于:
本发明根据升级后的数据库与需要升级的数据库的区别,有针对性的设置升级配置文件和新增数据表,根据配置文件和新增数据表能够精准而快速的升级数据库,不仅简化了数据库升级的操作过程,缩短了数据库升级的操作时间,而且节省了数据库的升级成本。
与此同时,本发明在数据升级文件中备份了每一份需要改变的数据表的原表,在保证数据不会丢失的同时,为用户的备用还原操作提供了极大的便利。
附图说明
图1为本发明实施例中Android数据库的升级方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供的Android数据库的升级方法,包括以下步骤:
S1:创建需要升级的数据库的数据升级文件,在数据升级文件中设置升级后的数据库版本,转到S2。
S2:将升级后的数据库与当前需要升级的数据库进行比对:
若与当前需要升级的数据库相比,升级后的数据库新增了至少1张数据表(Android原有应用的需求和功能增加,原有数据库的数据表已经无法满足增加的需求和功能,此时则需要新增数据表)时,则转到S3;
若与当前需要升级的数据库相比,升级后的数据库改变了原有数据库中已经存在的数据表的数据类型(在Android应用需要改变其需求或者逻辑时,或者原来设计的数据表存在问题,需要更改其中某些参数时,则需要对原来已有的数据表进行改变类型),则转到S4。若既增加了数据表又改变了原有数据表类型,则同时进行S3和S4的流程。
S3:将升级后的数据库中新增的所有数据表,全部导入至数据升级文件中,转到S6。
S4:制定JSON格式(JavaScript Object Notation,轻量级的数据交换格式)的配置文件(Android处理JSON数据比其他格式的数据要快,因此在处理数据时可以尽最大限度减少处理中所需要的耗时),配置文件中包括升级后的数据库中改变的所有数据表的更新信息,更新信息包括数据表版本、数据表名称、数据表列的原有名称和改变之后的名称、改变数据的数据集、改变数据的原有数据类型和改变之后的数据类型,转到S5。
S4中的数据类型包括字符串类型、整型、浮点型、长整型和判断类型。
S5:为每一份需要改变的数据表,对应创建一份数据相同的升级表,升级表的属性为数据类型可更改;根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据;将当前需要升级的数据库中每一份需要改变的数据表(即原有数据表)和对应的改变数据后的升级表,均保存至数据升级文件中(保存原有表的目的是为了备份,用户可通过原有表进行还原),转到S6。
S5中创建升级表的原因在于:已有数据库是通过ALTER TABLE命令创建,SQLite数库对ALTER TABLE命令支持非常有限,只能在表末尾添加列,不能修改列定义,不能删除已有的列,因此若要修改数据表中的数据类型,则必须重新创建新的升级表。
S5中根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据的具体流程为:根据数据表版本和数据表名称,定位需要改变的数据表对应的更新信息;根据更新信息中数据表列的原有名称,定位对应的列,将该列的名称替换为更新信息中数据表列改变之后的名称;根据更新信息中改变数据的数据集,定位对应的数据,将该数据的类型替换为更新信息中改变之后的数据类型。
S6:进行数据库升级时,获取数据升级文件,得到升级后的数据库版本和升级数据,根据升级数据对数据库进行升级,根据升级后的数据库版本更新原有的数据库版本。
S6中根据升级数据对数据库进行升级的具体流程为:升级数据中存在S3中新增的数据表时,在数据库中添加所有新增的数据表;当升级数据中存在S5中的升级表时,将数据库中与升级表对应的数据表,替换为升级表。
本发明进行跨版本升级数据库时,可通过以下两种方式进行升级:
(1)确定相邻版本v的差别,从v1开始依次迭代更新,先执行v1到v2,再v2到v3……因此每次需要专门保存版本之间的差异及数据转换的配置文件。该方式的优点是每次更新数据库的时候只需要在前一版本的配置文件中加入从前一版本升级到新版本的代码,易于理解和维护,缺点是当版本变多之后,多次迭代升级可能需要花费不少时间,增加用户的等待时间。
(2)为每个版本确定与升级后的数据库的区别,为每个版本设置各自独有的配置文件。该方式的优点是能够保证每个版本的用户都可以在消耗最少的时间升级到最新的数据库、且无需做无用的数据多次转存,缺点是强迫开发者记忆所有版本数据库的完整结构,且每次升级时配置文件必须全部设置。
根据以上两种方式,如果开发者在开发时着重版本升级的维护就选择方式(1);如果需要注重用户体验,让用户等待的时间减少,就可以选择方式(1)来进行操作。
本发明实施例提供的Android数据库的升级系统,包括数据升级文件创建模块、新增数据表导入模块、配置文件制定模块、升级表生成模块和数据库升级模块。
数据升级文件创建模块用于:创建需要升级的数据库的数据升级文件,在数据升级文件中设置升级后的数据库版本。
新增数据表导入模块用于:当与需要升级的数据库相比,升级后的数据库新增了至少1张数据表时,将升级后的数据库中新增的所有数据表,全部导入至数据升级文件中。
配置文件制定模块用于:当与需要升级的数据库相比,升级后的数据库改变了已经存在的数据表的数据类型时,制定JSON格式的配置文件,配置文件中包括升级后的数据库中改变的所有数据表的更新信息,更新信息包括数据表版本、数据表名称、数据表列的原有名称和改变之后的名称、改变数据的数据集、改变数据的原有数据类型和改变之后的数据类型,向升级表生成模块发送升级表生成信号。
升级表生成模块用于:收到升级表生成信号后,为每一份需要改变的数据表,对应创建一份数据相同的升级表,升级表的属性为数据类型可更改;根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据;将每一份升级表和对应的原有数据表均保存至数据升级文件中。
升级表生成模块根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据的具体流程为:根据数据表版本和数据表名称,定位需要改变的数据表对应的更新信息;根据更新信息中数据表列的原有名称,定位对应的列,将该列的名称替换为更新信息中数据表列改变之后的名称;根据更新信息中改变数据的数据集,定位对应的数据,将该数据的类型替换为更新信息中改变之后的数据类型。
数据库升级模块用于:进行数据库升级时,获取数据升级文件,得到升级后的数据库版本和升级数据,根据升级数据对数据库进行升级,根据升级后的数据库版本更新原有的数据库版本。
根据升级数据对数据库进行升级的具体流程为:升级数据中存在新增数据表导入模块中新增的数据表时,在数据库中添加所有新增的数据表;当升级数据中存在升级表生成模块中的升级表时,将数据库中与升级表对应的数据表,替换为升级表。
进一步,本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种Android数据库的升级方法,其特征在于,该方法包括以下步骤:
步骤A:创建需要升级的数据库的数据升级文件,在数据升级文件中设置升级后的数据库版本;
步骤B:当与需要升级的数据库相比,升级后的数据库新增了至少1张数据表时,将升级后的数据库中新增的所有数据表,全部导入至数据升级文件中;
步骤C:当与需要升级的数据库相比,升级后的数据库改变了已经存在的数据表的数据类型时,制定配置文件,配置文件中包括升级后的数据库中改变的所有数据表的更新信息,更新信息包括数据表版本、数据表名称、数据表列的原有名称和改变之后的名称、改变数据的数据集、改变数据的原有数据类型和改变之后的数据类型,转到步骤D;
步骤D:为每一份需要改变的数据表,对应创建一份数据相同的升级表,升级表的属性为数据类型可更改;根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据;将每一份升级表均保存至数据升级文件中;
步骤E:进行数据库升级时,获取数据升级文件,得到升级后的数据库版本和升级数据,根据升级数据对数据库进行升级,根据升级后的数据库版本更新原有的数据库版本;
步骤C中所述配置文件的格式为JSON格式。
2.如权利要求1所述的Android数据库的升级方法,其特征在于:步骤D还包括以下步骤:将每一份升级表对应的原有数据表均保存至数据升级文件中。
3.如权利要求1至2任一项所述的Android数据库的升级方法,其特征在于:步骤D中所述根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据的具体流程为:根据数据表版本和数据表名称,定位需要改变的数据表对应的更新信息;根据更新信息中数据表列的原有名称,定位对应的列,将该列的名称替换为更新信息中数据表列改变之后的名称;根据更新信息中改变数据的数据集,定位对应的数据,将该数据的类型替换为更新信息中改变之后的数据类型。
4.如权利要求1至2任一项所述的Android数据库的升级方法,其特征在于:步骤E中所述根据升级数据对数据库进行升级的具体流程为:升级数据中存在步骤B中新增的数据表时,在数据库中添加所有新增的数据表;当升级数据中存在步骤D中的升级表时,将数据库中与升级表对应的数据表,替换为升级表。
5.一种Android数据库的升级系统,其特征在于:该系统包括数据升级文件创建模块、新增数据表导入模块、配置文件制定模块、升级表生成模块和数据库升级模块;
数据升级文件创建模块用于:创建需要升级的数据库的数据升级文件,在数据升级文件中设置升级后的数据库版本;
新增数据表导入模块用于:当与需要升级的数据库相比,升级后的数据库新增了至少1张数据表时,将升级后的数据库中新增的所有数据表,全部导入至数据升级文件中;
配置文件制定模块用于:当与需要升级的数据库相比,升级后的数据库改变了已经存在的数据表的数据类型时,制定配置文件,配置文件中包括升级后的数据库中改变的所有数据表的更新信息,更新信息包括数据表版本、数据表名称、数据表列的原有名称和改变之后的名称、改变数据的数据集、改变数据的原有数据类型和改变之后的数据类型,向升级表生成模块发送升级表生成信号;
升级表生成模块用于:收到升级表生成信号后,为每一份需要改变的数据表,对应创建一份数据相同的升级表,升级表的属性为数据类型可更改;根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据;将每一份升级表均保存至数据升级文件中;
数据库升级模块用于:进行数据库升级时,获取数据升级文件,得到升级后的数据库版本和升级数据,根据升级数据对数据库进行升级,根据升级后的数据库版本更新原有的数据库版本;
所述配置文件制定模块中制定的配置文件的格式为JSON格式。
6.如权利要求5所述的Android数据库的升级系统,其特征在于:所述升级表生成模块还用于:将每一份升级表对应的原有数据表均保存至数据升级文件中。
7.如权利要求5至6任一项所述的Android数据库的升级系统,其特征在于:所述升级表生成模块根据配置文件中与需要改变的数据表对应的更新信息,改变升级表中相应的数据的具体流程为:根据数据表版本和数据表名称,定位需要改变的数据表对应的更新信息;根据更新信息中数据表列的原有名称,定位对应的列,将该列的名称替换为更新信息中数据表列改变之后的名称;根据更新信息中改变数据的数据集,定位对应的数据,将该数据的类型替换为更新信息中改变之后的数据类型。
8.如权利要求5至6任一项所述的Android数据库的升级系统,其特征在于:所述数据库升级模块根据升级数据对数据库进行升级的具体流程为:升级数据中存在新增数据表导入模块中新增的数据表时,在数据库中添加所有新增的数据表;当升级数据中存在升级表生成模块中的升级表时,将数据库中与升级表对应的数据表,替换为升级表。
CN201611058737.4A 2016-11-21 2016-11-21 Android数据库的升级方法及系统 Active CN106776824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611058737.4A CN106776824B (zh) 2016-11-21 2016-11-21 Android数据库的升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611058737.4A CN106776824B (zh) 2016-11-21 2016-11-21 Android数据库的升级方法及系统

Publications (2)

Publication Number Publication Date
CN106776824A CN106776824A (zh) 2017-05-31
CN106776824B true CN106776824B (zh) 2020-10-16

Family

ID=58912640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611058737.4A Active CN106776824B (zh) 2016-11-21 2016-11-21 Android数据库的升级方法及系统

Country Status (1)

Country Link
CN (1) CN106776824B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814895A (zh) * 2018-11-29 2019-05-28 广州因特信息科技有限公司 一种自动化的数据库更新方法及系统
CN112486546A (zh) * 2020-12-18 2021-03-12 上海中通吉网络技术有限公司 一种sqlite数据库升级方法、装置、终端及系统
CN113238782B (zh) * 2021-06-02 2023-04-07 西安热工研究院有限公司 一种国产睿腾实时数据库文件升级的方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152723A (ja) * 1993-11-30 1995-06-16 Nippon Telegr & Teleph Corp <Ntt> 対話処理装置
CN102279750A (zh) * 2011-08-30 2011-12-14 浙江大学 一种基于领域知识共享的迭代式代码生成方法
CN103559301A (zh) * 2013-11-14 2014-02-05 华为技术有限公司 更新数据的方法、数据库触发器和搜索引擎
CN103995854A (zh) * 2014-05-13 2014-08-20 大唐移动通信设备有限公司 一种设备跨版本升级方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152723A (ja) * 1993-11-30 1995-06-16 Nippon Telegr & Teleph Corp <Ntt> 対話処理装置
CN102279750A (zh) * 2011-08-30 2011-12-14 浙江大学 一种基于领域知识共享的迭代式代码生成方法
CN103559301A (zh) * 2013-11-14 2014-02-05 华为技术有限公司 更新数据的方法、数据库触发器和搜索引擎
CN103995854A (zh) * 2014-05-13 2014-08-20 大唐移动通信设备有限公司 一种设备跨版本升级方法和装置

Also Published As

Publication number Publication date
CN106776824A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106649771B (zh) 数据库的数据模型更新方法和系统
US20180329930A1 (en) Upgrading systems with changing constraints
CN104331285A (zh) 一种代码自动生成方法及系统
CN106776824B (zh) Android数据库的升级方法及系统
CN110968601A (zh) 一种数据查询处理方法及装置
US9384202B1 (en) Gateway module to access different types of databases
CN111475192B (zh) 对游戏服务器进行热更的方法、装置、存储介质和系统
CN103914564A (zh) 基于ArcGIS的城市管线更新入库的方法及系统
CN111104151B (zh) 一种基于Shell脚本的Git代码简化的管理方法
CN107943466B (zh) 数据库访问语句生成方法、装置及设备
CN112084208A (zh) 数据可视化方法及系统、存储介质及电子设备
CN104881311A (zh) 一种版本兼容的判断方法及装置
EP3147789A1 (en) Method for re-establishing standby database, and apparatus thereof
CN113868273B (zh) 元数据的快照方法及其装置
CN105677805A (zh) 一种利用protobuf的数据存储、读取方法及装置
CN103986765A (zh) 一种利用网络同步android多国语言的方法
CN110866012A (zh) 表结构管理方法、装置、服务器及可读存储介质
CN109144620B (zh) 一种悬浮窗权限设置界面的跳转方法及装置
CN116185389A (zh) 一种代码生成方法、装置、电子设备及介质
CN113741931B (zh) 软件升级方法、装置、电子设备及可读存储介质
CN115357269A (zh) 一种配置信息更新方法、装置、计算机设备及存储介质
CN106021243B (zh) 语言转换方法和装置
JP2018109898A (ja) データマイグレーションシステム
CN102611580B (zh) 一种基于规格驱动的多版本网络管理方法
CN113010232A (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