开源一个适用iOS的数据库表结构更新机制的代码

将前段时间开源的代码,发布一下:

ARDBConfig

On the iOS, provide a database table structure update mechanism, ensure that the user in any version of the installer, the database structure to ensure adapter.

(在iOS上,提供一个数据库表结构更新的机制,保证用户无论从哪个版本安装程序,数据库结构保证适配。)

如:用户A的数据库版本是v1,用户B是v2,用户C没装过App;现在,所有用户安装并运行最新App(数据库版本是v3)后,用户A的数据库将会“v1->v2->v3”顺序升级,用户B的数据库将会“v2->v3”顺序升级,用户C的数据库将会“v1->v2->v3”顺序升级。

源码下载地址:https://github.com/longjun3000/ARDBConfig

如何使用?

1、第一次创建工程,新建数据库的情况(数据库版本为1):

(1)新建一个继承于“RLDBConfigBase”的类,如“DBConfigLogic”。

(2)添加int类型只读属性“dbVersion”,实现get方法并return 1;

(3)添加覆盖父类方法“onCreate”,并在方法内写下第一次创建数据表结构的SQL及代码。

(4)在程序启动时(如“AppDelegate.m”),实例化“DBConfigLogic”类并调用“checkDatabase”方法,即可完成数据库的初始化动作。

2、App在某一版本数据库结构需要改动时(数据库版本升为2):

(1)在步骤1的基础上,修改“dbVersion”属性方法的返回值为return 2。

(2)在步骤1的基础上,添加覆盖父类方法“onUpgrade”,使用本文“onUpgrade”内示范代码,只需修改switch内的代码。

(3)如果在数据库结构升级完成后需要做一些后续数据处理,可以添加覆盖父类的方法“didChecked”,写入数据库操作的代码。

(4)在程序启动时(如“AppDelegate.m”),实例化“DBConfigLogic”类并调用“checkDatabase”方法,即可完成数据库的初始化和升级动作。

时间: 2024-12-11 16:38:42

开源一个适用iOS的数据库表结构更新机制的代码的相关文章

activiti数据库表结构全貌解析

下面本人介绍一些activiti这款开源流程设计引擎的数据库表结构,首先阐述:我们刚开始接触或者使用一个新的东西(技术)时我们首先多问一下自己几个为什么?为什么activiti在工作流程领域这么流行呢?仅仅是因为开源么?实现如此强大的流程引擎,activiti底层设计是如何进行的?activiti中依赖哪些技术等?这些可能应该是那些刚接触这个开源流程引擎产品的人应该有的疑问.我们在用开源产品的都是其实应该多问自己为什么?这样才能有所进步,不是么?兴许你一时兴起,“起笔”就把一款属于你自己的开源作

关系型数据库表结构设计规范-浅谈(转)

数据库表结构设计规范-浅谈,为啥是浅谈呢,因为主要的观点还是来自原微信公共账号的一篇文章,稍微加了一些自己的看法. 谁来进行数据库的设计? 肯定是具体的开发工程师来进行,开发同学的话,第一业务熟悉度比较高,第二结合OO和ORM的思想,能有比较好的运用关系型数据库的特性.如果是DBA同学的话,虽然对于数据库本身了解比较多,但是对于业务了解较少,很难有比较客观的设计.但是业务上线或者运行期间,需要DBA同学能够重度的加入进来,针对一些性能点和不合理的点进行优化,同事也可以在上线前,针对SQL进行re

OSSIM主要数据库表结构

OSSIM主要数据库表结构 对于从事OSSIM开发的技术人员,最主要的需要知道OSSIM库里的多种表结构,下面举几个典型事例: /* ======== config表 ======== */ DROP TABLE IF EXISTS conf; CREATE TABLE conf ( recovery        int NOT NULL, threshold       int NOT NULL, graph_threshold int NOT NULL, bar_length_left i

Activiti数据库表结构(表详细版)

http://blog.csdn.net/hj7jay/article/details/51302829 1  Activiti数据库表结构 1.1      数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头. 并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配. u  ACT_GE_* : “GE”代表“General”(通用),用在各种情况下: u  ACT_HI_* : “HI”代表“History”(历史)

ECshop 数据库表结构

ECshop 数据库表结构 -- 表的结构 `ecs_account_log`CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应',`us

ThinkPHP 数据库表结构处理类(简单实用)

<?php /*  * mysql表结构处理类  * 创建数据表,增加,编辑,删除表中字段  *  */ class MysqlManage{ /*  * 创建数据库,并且主键是aid  * table 要查询的表名  */ function createTable($table){ $sql="CREATE TABLE IF NOT EXISTS `$table` (`aid` INT NOT NULL primary key)ENGINE = InnoDB;"; M()-&g

magereverse - Magento数据库表结构

Magento数据库表结构相当复杂,250多张表包含了非常多的表关联关系,让刚刚接触Magento的开发者来说真的非常头疼.往往是看到一个产品的各种属性分散在非常多的表中,找不到任何办法来取出它们的数据. 实际上,国外有一个非常出色的Magento数据库表结构维护社区,从1.3.2.1时代就开始制作并更新Magento数据库表结构,目前已经随官方同步更新到了1.6.1版本.该社区维护的Magento数据库表结构相当出色,可以查看任意一张表的表结构,以及关联表,表外键及SQL代码!如下图所示,通过

微赞微擎手动增加模块数据库表结构详解

微赞微擎手动增加模块数据库表结构详解 有时候微擎或微赞的模块没有安装模块的xml文件,那我们先想安装到自己的系统上,要怎么处理呢,下面我们详细的介绍下步骤,个人能力有限,如有不正确之处,敬请谅解~ 1.模块的代码复制 这个就不用多说了吧,当然需要把相应的addons文件夹里的模块复制到自己系统的目录里,不然不要做一下的事情了 2.数据库表结构修改 代码复制过来,如果有相应的xml安装包或者install.php文件,可以直接安装,但是我们这里讲的是没有,那只能把原来要复制的表结构记录复制过来,插

EF-使用迁移技术让程序自动更新数据库表结构

承接上一篇文章:关于类库中EntityFramework之CodeFirst(代码优先)的操作浅析 本篇讲述的是怎么使用迁移技术让程序自动通过ORM框架将模型实体类结构映射到现有数据库,并新增或修改与之对应的表结构. 无论承不承认,都要使用到visual studio的"程序包管理器控制台"执行相关的命令. 1.使用"程序包管理器控制台" 工具>NuGet程序包管理器>程序包管理器控制台 这货的界面是这样子的: 选中默认项目为DAL,因为我们在DAL项目