我知道如何使用 FMDB 来实现创建数据库表等基本功能。
当我想更新我的表格(例如添加新列)时,我需要更新用户版本号。
FMDB有一个userVersion
属性应该是sqlite的user_version
。我使用下面的代码:
if let db = DBManager.shared.database, db.userVersion == 0, db.open() {
addColumnsToSomeTable()
db.userVersion = 1
}
但是运行项目,userVersion
仍然是 0。它应该是 1,并且不应输入此 if block 。
为什么userVersion无法升级?
我也尝试过:
let string = "PRAGMA user_version = 1"
do {
try db.executeUpdate(string, values: nil)
} catch {
}
还是同样的问题。
我搜索了一些教程,其中大多数都有 fileExists
检查,如下所示:
if !FileManager.default.fileExists(atPath: dbPath) {
database = FMDatabase(path: dbPath)
}
这里有什么意义?如果文件存在,获取它的正确方法是什么?
与以下内容不同:database = FMDatabase(path: dbPath)
?
最佳答案
我同时打开了sqlite软件DB Browser for SQLite
。关闭它,然后就可以正常工作了。
关于ios - FMDB更新版本号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46642854/