这个日志在dbaccess(ios框架)中的含义是什么“错误>>没有这样的表:_entityRevision”?

时间:2015-09-03 05:23:31

标签: ios swift dbaccess

我在我的项目中使用DBAccess作为我的sqlite数据库的ORM。我有几个模型,如User,Worker等。当我对这些类的实例执行某些操作时,例如:

    var query = User.query().whereWithFormat("login = %@ and password
  = %@", withParameters: [login, password])

我在日志控制台中收到此错误:

    "error >> no such table: _entityRevision" 

虽然一切正常但我在获取此查询后得到了正确的DBResultSet。 那么,这有什么问题呢?

1 个答案:

答案 0 :(得分:1)

这是一个内部表,用于在更改属性名称和对象结构时跟踪实体的升级。它是在我们创建新的DBAccess数据库时创建的,但是当您使用现有数据库时,它不存在。

您可以手动创建表以停止错误吗?

CREATE TABLE IF NOT EXISTS _entityRevision (entityName TEXT,revision INTEGER);

但我们也会确保修复该软件的下一版本。

但是,查看代码时,无论何时打开数据库文件,都会运行此代码块,因此该表应该存在。在使用其他文件执行应用程序期间是否将数据库换出?或者它是只读的吗?

if (dbHandle) {

      /* create the revision table */
      sqlite3_exec(dbHandle, "CREATE TABLE IF NOT EXISTS _schemaRevision (revision INTEGER);", nil, nil, nil);
      sqlite3_exec(dbHandle, "CREATE TABLE IF NOT EXISTS _entityRevision (entityName TEXT,revision INTEGER);", nil, nil, nil);

}

由于 阿德里安