将前段时间开源的代码,发布一下:
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”方法,即可完成数据库的初始化和升级动作。