SQLite.swift Значение типа Connection не имеет члена userVersion

Я только что обновился до ветки SQLite.swift для xCode 7 и Swift 2. Теперь, наряду с миллионом других ошибок, которые я пытаюсь исправить, я не могу понять, что эквивалентно предыдущей версии Database.userVersion? Я знаю, что тип базы данных был заменен типом соединения. Но что мне проверить, чтобы узнать, какая версия изменений схемы у конкретного пользователя, которые я ранее обрабатывал с помощью следующего фрагмента кода:

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
    }
}

person Wayne Fulcher    schedule 24.09.2015    source источник
comment
См. эту тему: github.com/stephencelis/SQLite.swift/issues/194 Это даст вам расширение, которое вы можете использовать в своем проекте.   -  person stephencelis    schedule 24.09.2015


Ответы (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)
person mm2001    schedule 14.01.2016