ans*_*hul 6 sqlite app-store ios
我在app store(1.0版)上传了一个应用程序.我的应用程序使用sqlite数据库存储一些数据.现在,我在数据库中做了一些更改(我在我的数据库中的一个表中添加了2或3个新列).我想用新版本1.1(具有不同的数据库结构)更新我的应用程序的先前版本.现在,当已经使用版本1.0的用户将应用程序升级到版本1.1时,数据库已经存在于应用程序沙箱中,因此,应用程序指向版本1.1,但我的数据库仍然是旧数据库.我希望新的数据库包含旧数据,如果有的话.请帮帮我.谢谢.
小智 13
sqlite支持称为user_version属性的东西,您可以执行PRAGMA user_version以查询应用程序db的当前架构版本.当您的应用程序启动时,可以在开头写入此查询.
更新此user_version执行以下更新查询PRAGMA user_version = version_num;
无论何时创建sqlite db,最好将此属性设置为user_version,以便将来升级时可以查询当前值.检查它的需要并执行剩余的alter或create table来升级模式版本.
例如:
在第一个版本中,我使用col1,col2创建table1
我执行sql来创建table1,一旦成功完成,我执行pragma user_version = 1.所以这将表明我当前的架构版本是1
在将来的版本中我添加了新的col3,我需要将我的架构版本更改为2
我首先查询user_version,检查它的值,如果它是1,那么你需要运行alter script来添加新列并将用户版本设置为2.
在您的情况下,由于您之前未设置user_version,因此很难区分新安装与升级方案.所以现在可能假设db存在,它是升级场景并执行alter scripts,如果不存在则假设它是一个新的安装场景并运行create scripts.但是看看你是否可以使用上面的pragma来解决你的问题.
| 归档时间: |
|
| 查看次数: |
5101 次 |
| 最近记录: |