7

3つのテーブルを持つsqliteを持つアプリがあります。私の懸念は、別のテーブル(つまり、4つのテーブル)を追加する更新を導入すると、更新されたバージョンによってデータベースが消去されることです。

バックアップが更新前に行われ、復元が更新後に行われる場合、データベースをバックアップ/復元するにはどうすればよいですか?IO(SDカードにコピーしてコピーバック)を使用して実行すると、失敗します。

私はおそらくデータをxmlにエクスポートして手動でロードすることを考えています。別の方法はありますか?それを行う方法の例はありますか?

4

1 に答える 1

4

単に新しいテーブルを追加したい場合は、メソッドのDROPTABLEコマンドをコメントアウトしてくださいonUpgrade()。コードを完全に制御onUpgrade()できるので、次のようになります。

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("CREATE TABLE ...");
}

技術的には、データベースのバージョンをインクリメントする必要はありません。コピーにアクセスできるときはいつでもdb、CREATEステートメントを実行できます。

于 2012-11-24T02:52:34.627 に答える