基本上我想在升级iPhone应用程序时相应地迁移sqlite schemata和数据。我听说迁移框架在Ruby,Java和.NET空间中变得越来越流行,但在iOS领域有什么可以帮助我吗?
CoreData目前不是我的选择。 (请不要问为什么,它不是。)
如果迁移库不可用,您采取什么方法?
答案 0 :(得分:1)
在我过去,我通常使用数据库中的PRAGMA命令保留版本信息。每当我的应用程序启动时,我都会检查数据库当前所在的版本,并调用任何所需的更新例程来改变结构。
对于大多数拥有完整框架的案例来说,这是过度的;特别是如果数据库中的表少于10或20个。
一些伪代码:
currentVersion = getCurrentDbVersion()
if currentVersion < 2 then
upgradeToVersion2();
end if
if currentVersion < 3 then
upgradeToVersion3();
end if
if currentVersion < 4 then
upgradeToVersion4();
end if
以下是有关该PRAGMA命令的更多信息: http://www.sqlite.org/pragma.html#pragma_user_version
希望有所帮助。 :)