【问题标题】:SQLite.swift Value of type Connection has no member userVersionSQLite.swift Connection 类型的值没有成员 userVersion
【发布时间】:2016-01-14 13:26:28
【问题描述】:

我刚刚升级到 xCode 7 和 Swift 2 的 SQLite.swift 分支。现在,我试图纠正一百万个其他错误,我无法弄清楚与以前的 Database.userVersion 等效的是什么?我知道数据库类型已替换为连接类型。但是我要检查什么来了解特定用户的架构更改版本,我之前通过以下代码 sn-p 处理:

private func migrate (){
    //dropTables()

    if db.userVersion == 0 {
        initializeDatabase()
        db.userVersion = 1
    }

    if db.userVersion == 1 {
        LogMsgSchema().createTable(con)
        db.userVersion = 2
    }

    if db.userVersion == 2 {
        CamerasSchema().updateTable(db, dbVersion: db.userVersion)
        PhotosSchema().updateTable(db, dbVersion: db.userVersion)
        db.userVersion = 3
    }

    if db.userVersion == 3 {
        CameraFeaturesSchema().createTable(db)
        db.userVersion = 4
    }
}

【问题讨论】:

标签: sqlite swift2 xcode7 sqlite.swift


【解决方案1】:

来自https://github.com/stephencelis/SQLite.swift/issues/194 的这个示例展示了如何使用最新的SQLite.swift 创建扩展来执行此操作:

import SQLite

let db = try! Connection("foo.sqlite", readonly: false)
db.trace { print($0) }

extension Connection {
    public var userVersion: Int {
        get { return Int(scalar("PRAGMA user_version") as! Int64) }
        set { try! run("PRAGMA user_version = \(newValue)") }
    }
}

db.userVersion = 7
print(db.userVersion)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2018-01-15
    • 2017-04-28
    相关资源
    最近更新 更多