1

我想为我的应用程序提供一个 SQL 数据存储,但是现在,由于 Apple 引入了 WAL 日志,它生成 3 个文件而不是一个,所以我想知道我是否应该提供所有 3 个文件,或者我可以尝试强制使用 SQL创建一个检查点,将其全部合并到一个 .sql 文件中。

我真的很想使用这个新的 iOS 7 功能,所以回到回滚日志对我来说不是一种方式。

4

2 回答 2

3

要强制 SQLite 创建检查点,请执行PRAGMA wal_checkpoint

或者,使用 发布数据库journal_mode = DELETE,并在安装文件后更改模式。

无论如何,只发送所有文件是没有问题的。(该-shm文件不包含永久数据,可以忽略。)

于 2013-11-04T08:37:40.420 回答
2

您不必使用 WAL,这只是默认设置。您可以切换到不同的模式。添加持久存储时,将options参数设置为类似

NSDictionary *options = @{ @"journal_mode": @"DELETE" };

然后,您将获得与早期 iOS 版本相同的日志行为。在创建预先填充的数据存储时使用它,您不需要处理额外的日志文件。

于 2013-11-03T23:40:03.217 回答