sqlite – 评估与Dropbox同步核心数据的策略
这个问题是关于使用Dropbox在多个iOS设备之间同步sqlite Core Data存储.考虑这种安排:
>应用程序使用Core Data存储,将其称为local.sql,保存在应用程序自己的NSDocumentDirectory中 问题: A.这种安排是否非常低效,应该完全避免?如果我们能保证数据库的规模不大,该怎么办? B.这种安排是否有利于文件腐败?通过增量/更改日志进行同步?如果是这样,请您详细说明原因? 解决方法
不相关,因为:
是的,非常如此.几乎可以保证.我建议您查看How to Corrupt An SQLite Database File. Offhand您可能至少提交第1部分中描述的两个问题,包括在事务处于活动状态时复制文件并删除(或无法复制或制作无用的副本)日志文件(S).在任何严肃的测试中,您的计划几乎可能立即崩溃. 如果这还不够糟糕,请考虑两台设备同时保存更改的情况.然后怎样呢?如果你很幸运,你只会得到一个Dropbox臭名昭着的“冲突副本”文件副本,“仅”意味着丢失一些数据.如果没有,您再次陷入完全数据库损坏. 当然,拆除核心数据堆栈以进行同步对用户来说是一个巨大的不便. 如果您想考虑通过Dropbox同步Core Data,我建议使用以下方法之一: > Ensembles,可以通过Dropbox同步(同时避免上述问题)或iCloud(同时避免iOS内置Core Data / iCloud同步的问题). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |