我想使用 Titanium API将数据库文件保存在Documents Directory中,而不是/Library/Private Documents文件夹中。
var database = Titanium.Database.install('/db/Database.sqlite',DatabaseHandler.DB_NAME);
它正在被保存到
iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Library/Private Documents/Database.sql
而我们要求它
iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Documents/dbDir/Database.sql
或者
iPhone Simulator/5.0/Applications/B750AD49-5879-4ABD-B903-C76A03833BE4/Documents/Database.sql
基本要求是,我们不希望用户的数据在新应用更新时丢失。在 App Store 的新应用程序更新中,仅保存文档目录数据,其余数据将被删除。
如果我手动移动 db 文件:
if(Ti.Platform.osname === 'iphone'){
var dbFile = database.file;
var filePath = String.format('%s/%s.sql',dbDir.resolve(),DatabaseHandler.DB_NAME);
Ti.API.info(filePath);
var result = dbFile.move(filePath);
Ti.API.info(result);
}
然后在运行应用程序时,我遇到了消息问题:
message = "无效的 SQL 语句。Error Domain=com.plausiblelabs.pldatabase Code=3 \"解析提供的 SQL 语句时发生错误。\" UserInfo=0x9c14ed0 {com.plausiblelabs.pldatabase.error.vendor.code=1, NSLocalizedDescription =解析提供的 SQL 语句时发生错误。, com.plausiblelabs.pldatabase.error.query.string=SELECT * FROM UserProfile, com.plausiblelabs.pldatabase.error.vendor.string=no such table: UserProfile} in -[TiDatabaseProxy执行:] (TiDatabaseProxy.m:186)"