0

xCode 7 および Swift 2 用の SQLite.swift のブランチにアップグレードしたところです。他の何百万ものエラーとともに、修正しようとしていますが、以前の 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
    }
}
4

1 に答える 1

0

https://github.com/stephencelis/SQLite.swift/issues/194のこの例は、最新の .xml でこれを行う拡張機能を作成する方法を示しています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)
于 2016-01-14T05:26:28.067 に答える