Ios 如何在CoreData SQLite数据库中强制更新?

Ios 如何在CoreData SQLite数据库中强制更新?,ios,sqlite,core-data,updates,itunes,Ios,Sqlite,Core Data,Updates,Itunes,我有一个应用程序,我使用CoreData来存储数据。 一切正常,但我想轻松访问我的数据,以进行验证。 所以我想尝试与iTunes共享数据(UIFileSharingEnabled)。 现在我可以在iTunes中看到我的数据库,我可以在mac上复制.sqlite文件,我可以用sqlite3验证数据 一切正常,但我想测试其他东西,所以我修改了应用程序中的一些数据,但我无法访问修改后的数据。 .sqlite数据库总是有几天的历史。我在iTunes共享中还有另外两个文件(.sqlite shm和.sql

我有一个应用程序,我使用CoreData来存储数据。 一切正常,但我想轻松访问我的数据,以进行验证。 所以我想尝试与iTunes共享数据(UIFileSharingEnabled)。 现在我可以在iTunes中看到我的数据库,我可以在mac上复制.sqlite文件,我可以用sqlite3验证数据

一切正常,但我想测试其他东西,所以我修改了应用程序中的一些数据,但我无法访问修改后的数据。 .sqlite数据库总是有几天的历史。我在iTunes共享中还有另外两个文件(.sqlite shm和.sqlite wal),它们被修改(修改数据时日期会改变),但我无法“更新”.sqlite文件

我试图在iPhone上强制退出应用程序,重建应用程序,创建新数据而不是修改,但没有成功


我的应用程序中的数据是正确的,所以我假设修改存储在另外两个文件中,但是有人知道我可以尝试强制更新.sqlite文件吗

其他文件的存在是因为存储使用SQLite日志类型。在初始化sqlite3工具时,只需使用该类型


理想情况下,您应该只使用应用程序代码来查询数据存储,而不是使用sqlite3,因为表结构应该被视为私有的。

其他文件存在,因为存储使用SQLite日志类型。在初始化sqlite3工具时,只需使用该类型

理想情况下,您应该只使用应用程序代码来查询数据存储,而不是使用sqlite3,因为表结构应该被视为私有的。

根据,强制SQLite将-wal文件合并到主.SQLite文件的方法是使用“回滚日志模式”将存储添加到持久存储协调器:

对于使用WAL模式加载的存储,如果主存储文件和对应的-WAL文件都存在,则使用回滚日志记录模式将存储添加到持久存储协调器将强制核心数据执行检查点操作,该操作将-WAL文件中的数据合并到存储文件。这实际上是执行检查点操作的核心数据方式

技术说明包括实现此目的的示例代码(尽管目标是C)。

根据,强制SQLite将-wal文件合并到main.SQLite文件的方法是使用“回滚日志模式”将存储添加到持久存储协调器:

对于使用WAL模式加载的存储,如果主存储文件和对应的-WAL文件都存在,则使用回滚日志记录模式将存储添加到持久存储协调器将强制核心数据执行检查点操作,该操作将-WAL文件中的数据合并到存储文件。这实际上是执行检查点操作的核心数据方式


技术说明包括实现此目标的示例代码(尽管目标是C)。

谢谢!我不想改变这个程序(苹果希望基地的日志记录方式)。现在我知道了这个过程的名称,我找到了适合我的操作方法,将iTunes中的三个文件放到一个文件夹/launch sqlite3中。sqlite file/VACUUM/Ctrl-D/为sqlite文件重新启动sqlite3->它是最新的谢谢!我不想改变这个程序(苹果希望基地的日志记录方式)。现在我知道了这个过程的名称,我找到了适合我的操作方法,将iTunes中的三个文件放到一个文件夹/launch sqlite3中。sqlite file/VACUUM/Ctrl-D/为sqlite文件重新启动sqlite3->它是最新的