iOS App数据库迁移
2020-12-23 本文已影响0人
hui8685291
直接判断需要更新的字段是否存在,没有存在的话插入新的字段
//在已经创建好的表格中插入add字段的SQ语句
NSString *addStr = [NSString stringWithFormat:@"alter table '%@' add 'add' text ",name];
//判断maillisttable表格中是否有add字段
if (![_dataBase columnExists:@"add" inTableWithName:@"maillisttable"])
{
[_dataBase executeUpdate:addStr];
}
注意:这里确实可以满足升级数据库字段的需求,但是重复修改数据库字段也是不建议的,所以建议在创建和维护数据库时,一定要多提前做好数据库设计,尽量避免频繁升级数据库操作。
数据库升级数据迁移简单完整的解决方案
清除旧的数据,重建表
优点:简单
缺点:数据丢失
在已有表的基础上对表结构进行修改
优点:能够保留数据
缺点:规则比较繁琐,要建立一个数据库的字段配置文件,然后读取配置文件,执行SQL修改表结构、约束和主键等等,涉及到跨多个版本的数据库升级就变得繁琐并且麻烦了
创建临时表,把旧的数据拷贝到临时表,然后删除旧的数据表并且把临时表设置为数据表。
优点:能够保留数据,支持表结构的修改,约束、主键的变更,实现起来比较简单
缺点:实现的步骤比较多
有管FMDBMIgrationManager升级数据库可以参考https://www.cnblogs.com/sundaysgarden/p/10846797.html