关于伟大而神奇的SQLite.swift,我在想
您在应用商店中有一个应用程序,v7。升级到 v8。用户 X 使用应用商店将 v7 升级到 v8。
比如说在 v8 中,我们对其中一个 sql 表进行了轻微的更改,可能会添加一列或重命名一列。
在这种情况下,是否应该或必须在 SQLite.swift 中做任何特殊的事情?
SQLite.swift 的处理方式是什么?
(例如,Android 的 onUpgrade 中有一个方便的 helper class 概念……它有自己的一系列复杂问题。)
最佳答案
执行SQLiteOpenHelper很简单:
db = SQLiteDatabase.openDatabase(...);
onConfigure(db);
int version = db.getVersion();
if (version != mNewVersion) {
db.beginTransaction();
try {
if (version == 0) {
onCreate(db);
} else {
if (version > mNewVersion) {
onDowngrade(db, version, mNewVersion);
} else {
onUpgrade(db, version, mNewVersion);
}
}
db.setVersion(mNewVersion);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
只需在 Swift 中做同样的事情。
关于如何实现onUpgrade()
,参见SQLiteOpenHelper onUpgrade() Confusion Android .
关于iOS SQLite.swift,关于应用升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41100001/