Titanium API を使用して、データベース ファイルを/Library/Private Documentsフォルダーではなく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 ステートメントです。エラー 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=そのようなテーブルはありません: UserProfile} in -[TiDatabaseProxy実行:] (TiDatabaseProxy.m:186)"