JQFMDB icon indicating copy to clipboard operation
JQFMDB copied to clipboard

数据库迁移的api

Open powerforward741852 opened this issue 7 years ago • 3 comments

大神是怎么做的数据库迁移

powerforward741852 avatar Apr 09 '17 10:04 powerforward741852

此部分目前只有两个接口, 关于迁移, 后续会完善 /** 增加新字段, 在建表后还想新增字段,可以在原建表model或新model中新增对应属性,然后传入即可新增该字段,该操作已在事务中执行

@param tableName 表的名称 @param parameters 如果传Model:数据库新增字段为建表时model所没有的属性,如果传dictionary格式为@{@"newname":@"TEXT"} @param nameArr 不允许生成字段的属性名的数组 @return 是否成功 */

  • (BOOL)jq_alterTable:(NSString *)tableName dicOrModel:(id)parameters excludeName:(NSArray *)nameArr;
  • (BOOL)jq_alterTable:(NSString *)tableName dicOrModel:(id)parameters;

gaojunquan avatar Apr 10 '17 01:04 gaojunquan

[db jq_inDatabase:^{ if (![db jq_isExistTable:tablename]) { [db jq_createTable:tablename dicOrModel:model]; } else { [db jq_alterTable:tablename dicOrModel:model]; } 这么写会报错 大神该在哪里调用啊

woniuwuyu avatar Apr 13 '17 09:04 woniuwuyu

报错的原因是因为死锁, alter不要在block内调用(jq_inDatabase:^), 因为新增字段已经在事务里处理了

gaojunquan avatar Apr 14 '17 01:04 gaojunquan