SQLite 数据库迁移到 Core Data,并在 App Store 上更新实时版本
SQLite database migration to Core Data with updating live version on App Store
我在 App Store 上有实时应用程序。它使用 SQLite 数据存储和丑陋的方法来保存和获取数据。我已经用核心数据替换了数据模型。所以现在我有一个 table 包含收藏夹列表。我想用户会丢失他们的收藏夹数据,第二个问题是以前的 SQLite 数据库将在应用程序中。
将该数据迁移到新数据库的最佳方法是什么。所以代码很难看,我已经开始写新项目了。这意味着将不再有任何同名的 SQLite 数据库,只有新的 Core Data 数据库。我们通常需要多长时间才能解决这个问题。
我想我可以在应用程序委托中添加一个方法来检查应用程序中是否有名称的数据库我将尝试从该存储中检索所有数据并将其转换为核心数据实体。然后当数据转换成功时,我将删除该数据库。如果我所有的活跃用户都会有这个更新,我什么时候会。我将从应用程序委托中删除此功能,因为所有功能都是最新的。有道理吗?
你的做法是正确的。在新版本的应用程序中,检查是否有最新的Core Data持久存储,如果没有,则读取旧数据,将其复制到Core Data,删除旧的sqlite文件。
您可以将该代码保留在那里很长时间 - 如果已经安装了有效的 Core Data,它就不会 运行。
我在 App Store 上有实时应用程序。它使用 SQLite 数据存储和丑陋的方法来保存和获取数据。我已经用核心数据替换了数据模型。所以现在我有一个 table 包含收藏夹列表。我想用户会丢失他们的收藏夹数据,第二个问题是以前的 SQLite 数据库将在应用程序中。
将该数据迁移到新数据库的最佳方法是什么。所以代码很难看,我已经开始写新项目了。这意味着将不再有任何同名的 SQLite 数据库,只有新的 Core Data 数据库。我们通常需要多长时间才能解决这个问题。
我想我可以在应用程序委托中添加一个方法来检查应用程序中是否有名称的数据库我将尝试从该存储中检索所有数据并将其转换为核心数据实体。然后当数据转换成功时,我将删除该数据库。如果我所有的活跃用户都会有这个更新,我什么时候会。我将从应用程序委托中删除此功能,因为所有功能都是最新的。有道理吗?
你的做法是正确的。在新版本的应用程序中,检查是否有最新的Core Data持久存储,如果没有,则读取旧数据,将其复制到Core Data,删除旧的sqlite文件。
您可以将该代码保留在那里很长时间 - 如果已经安装了有效的 Core Data,它就不会 运行。