1

请耐心等待我 - 我将尝试在这个问题中使用正确的术语。我有一个 iOS 应用程序,它允许用户创建他们支持 Core Data 的 .sqlite 数据库的备份已有好几年了。出于某种原因,早在何时,我将 journal_mode 的 pragma 选项设置为“MEMORY”,这意味着过去几年所做的每个备份都没有 WAL 或 SHM 文件。我正在重写我所有的数据库代码,并且我知道 iOS 的当前默认 journal_mode 是“ WAL或者我可以做些什么让它在 WAL 模式下运行。我希望这是有道理的——这让我有点困惑,但我会很感激关于如何解决这个问题的任何想法。

4

1 回答 1

2

您可以随时更改数据库的日志模式,只要您具有独占访问权限即可;只需打开它,然后执行PRAGMA。(事实上​​,这是启用 WAL 模式的唯一方法。)

请注意,只有 WAL 模式持久存储在数据库文件中;任何其他日志模式是连接的属性;打开非文件 WAL 时,默认处于 DELETE 模式。

于 2017-12-03T09:14:40.477 回答