iOS SQLite.swift,关于应用升级?

标签 ios sqlite sqlite.swift

关于伟大而神奇的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/

相关文章:

ios - 滑动以删除 UITableView 中的整个部分

android - 从 Drive 中的 sqlite 数据库读取并将其写入本地数据库 - Android

ios - 在 Swift ios 中从 SQlite 的 TableView 单元格中重复检索数据三次

ios - 我的网站无法在 iPhone 上滚动?

ios - 呈现模态视图 Controller 时暂停动画

ios - 如何在 Objective C 中使用 JS Context SetObject

node.js - 同步运行 Node sqlite3代码

android - SQLite数据库android创建表

ios - 我如何关闭 swift.sqlite 中的事件连接以交换其 sqlite.file

ios - 无法设置外键 SQLite.swift