Fat*_*tie 8 sqlite ios sqlite.swift
关于宏伟而神奇的SQLite.swift,我想知道
您在应用商店中有一个应用,v7.有一个升级到v8.用户X使用应用商店将v7升级到v8.
比如在v8中,我们稍微改变了一个sql表,可能是添加一个列或重命名一个列.
在这种情况下,SQLite.swift中是否应该执行任何特殊操作?
什么是SQLite.swift方法来处理它?
(例如,Android 在他们的帮助程序类中有一个方便的onUpgrade概念......它带有它自己的一组复杂问题.)
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();
}
}
Run Code Online (Sandbox Code Playgroud)
在Swift中做同样的事情.
有关如何实现onUpgrade(),请参阅SQLiteOpenHelper onUpgrade()Confusion Android.