gpt4 book ai didi

iOS App SQLite 数据库结构改变

转载 作者:行者123 更新时间:2023-11-29 11:09:15 25 4
gpt4 key购买 nike

我正在更新一个使用 sqlite 数据库的旧 iOS 应用程序。我更改了数据库结构,将列添加到现有表中。现在,我正在我的设备上测试它。如果我从 iPad 清除我的旧应用程序,然后在其上运行这个新的更新版本,它工作正常。但是如果我已经在 ipad 上安装了旧版本并测试这个更新版本,它会以某种方式使用旧数据库而不是更新的数据库。有人可以帮助我了解为什么要这样做吗?

最佳答案

我的猜测和尝试为您做出一个简单的答案是这样的。很可能你更新了项目文件中的数据库——这意味着当你运行它时,你的新数据库将存在于包中。 bundle 中的文件无法更新,因此通常的做法是将数据库从 bundle 中复制出来并将其存储在 ios 沙箱中的某个位置。我通常使用文档目录来保持简单。

很可能发生的情况是,当您在之前的安装上运行它时,它会看到该文件已经复制到设备上,因此它不会触及它,但是在新安装时,它可能会看到数据库丢失所以它将它复制到那里,这就是为什么在新安装时它工作正常但现有的安装不工作的原因。

在应用程序委托(delegate)或您的 Root View Controller 中查找检查现有数据库并在启动时根据需要复制数据库的代码。

如果您需要在现有安装上更新数据库,则需要强制复制。

请注意,如果您在现有数据库中有数据,请不要覆盖它(如果它很重要)。如果重要数据存储在那里,您必须做一些获取数据并将数据导入新数据库的 shell 游戏,或者更简单的方法是在现有数据库上运行数据库架构修改命令,使其相同.

再次强调,在运行这些命令之前要注意并复制本地数据库文件,以防万一。

祝你好运

关于iOS App SQLite 数据库结构改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com