こんにちは私はプレイストアのメモ帳アプリケーションを持っており、ユーザーのデータを持っています...これらの新しい変更がないアプリは&インポートバックアップをエクスポートして問題なく完全に実行できます。以前のSQLiteOpenHelperアレンジメントを変更したとき、私は上記の新しい変更を元のアレンジメントに戻した場合を除いて、私が上記のことを何もしません。COLUMNの名前が変更された新しいデータベースを使用してexsiting Sqliteデータベースを移行するにはどうすればよいですか? Android
古いSQLiteOpenHelper配置
static final String DATABASE_NAME = "note.db";
static final String TABLE_NOTE = "tb_note";
static final String KEY_ID_NOTE = "id";
private static final String KEY_TITLE_NOTE = "title";
private static final String KEY_CONTENT_NOTE = "content";
private static final String KEY_LAST_MODIFIED_NOTE = "last_modified";
private static final String CREATE_TABLE_NOTE =
"CREATE TABLE " + TABLE_NOTE + "(" +
KEY_ID_NOTE + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL" +
", " + KEY_TITLE_NOTE + " TEXT NOT NULL" +
"," + KEY_CONTENT_NOTE + " TEXT NOT NULL" +
"," + KEY_LAST_MODIFIED_NOTE + " TEXT DEFAULT \'\'" +
")";
private static final int DATA_VERSION = 2;
しかし、私はアプリで1人の列名を変更し、私の新しいSQLiteOpenHelperは、私はこのコード
static final String DATABASE_NAME = "note.db";
static final String TABLE_NOTE = "tb_note";
static final String KEY_ID_NOTE = "id";
private static final String KEY_TITLE_NOTE = "title";
private static final String KEY_CONTENT_NOTE = "content";
private static final String KEY_UPDATE_TIME = "update_time";
private static final String CREATE_TABLE_NOTE =
"CREATE TABLE " + TABLE_NOTE + "(" +
KEY_ID_NOTE + " INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL" +
", " + KEY_TITLE_NOTE + " TEXT NOT NULL" +
"," + KEY_CONTENT_NOTE + " TEXT NOT NULL" +
"," + KEY_UPDATE_TIME + " TEXT NOT NULL" +
")";
private static final int DATA_VERSION = 2;
下に太字でこれらの行を変更する以外同じであるすべてのもののようになりました
は、彼らがこの
PRIVATのようでしたstatic final String KEY_LAST_MODIFIED_NOTE = "最後に変更された";
"" + KEY_LAST_MODIFIED_NOTE + "TEXTデフォルト\ '\'" +
が、今
プライベート静的最終文字列KEY_UPDATE_TIME = "UPDATE_TIME"。
"" + KEY_UPDATE_TIME + "TEXT NULL NOT" +
ついに今失うことなく、新しいものを使用してこのexsiting Sqliteをデータベースを移行する方法私のONUPGRADEコード
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// update database for database version < 2
if (oldVersion < 2) {
db.execSQL("ALTER TABLE " + TABLE_NOTE + " ADD COLUMN " + KEY_UPDATE_TIME + " TEXT DEFAULT \'\'");
}
}
ですどんなデータですか?
ありがとうございます@Anilそれはどのように動作するか見るためにそれを書くことができます...私のアプリがそれに依存しているので、本当に感謝します:) – Khamkhor