使用SQLite数据库加密模块时无法找到模块合金/ sync / enc.db

时间:2017-02-02 04:33:16

标签: sqlite encryption appcelerator appcelerator-titanium appcelerator-mobile

我尝试使用从Appcelerator平台下载的模块SQLite数据库加密模块,该模块仅适用于专业版。

我将此添加到我的模型中

try {
    require('appcelerator.encrypteddatabase');
    var dbType = "enc.db";
} catch(e) {
    var dbType = "sql";
}

并在适配器

adapter : {
            type : dbType,
            collection_name : "somename", 
            idAttribute : "someid",
            migration : "20161105200100"
        }

当我运行项目时,我收到此错误,因为适配器没有 enc.db 类型。

使用此模块时有任何类似问题的人?

编辑:

Titanium SDK版本:5.5.1.GA 模块版本:1.3.3

测试: iphone 5s,版本10.2.1 模拟器iphone 7 plus,版本10.1

1 个答案:

答案 0 :(得分:0)

要使用我使用的平台加密模块:

alloy.js

// Use encrypteddatabase if the module is included, else use sql.
try {
    require('appcelerator.encrypteddatabase');
    Alloy.Globals.dbEncrypted = 'enc.db';
} catch (e) {
    console.error('appcelerator.encrypteddatabase module is not available', e);
}
Alloy.Globals.dbType = 'sql';

models/myModel.js

var dbType = Alloy.Globals.dbEncrypted || Alloy.Globals.dbType || 'sql';

...

config: {
    columns: {
        id: 'TEXT PRIMARY KEY',
        firstName: 'TEXT',
        lastName: 'TEXT'
    },
    adapter: {
        type: dbType,
        collection_name: 'myModel',
        idAttribute: 'id',
        db_name: 'myModel.' + dbType
    }
}

在我的情况下,db_name专门针对此模型生成(因为我有加密和非加密数据库的组合,但您也可以使用类似db_name: 'myModel'

的内容

Ti SDK版本5.2.2.GA和模块版本1.1.4

我的一切都很好。