質問するのは少し早いかもしれませんが、既存のSQLiteデータベースアプリケーションを新しいAndroid Room Persistance Libraryに移行/アップグレードする方法は可能ですか?
ルームエンティティが現在のテーブルスキーマと一致すると仮定すると、同じデータベース/テーブルを引き続き使用できます。
Roomは、データベースの作成またはアップグレード時に初期化されるマスターテーブルを管理するため、データベースバージョンをインクリメントし、ダミーの移行を提供する必要があります。
@Database(entities = SomeEntity.class, version = EXISTING_VERSION + 1)
public class MyDatabase extends RoomDatabase {
// ...
}
MyDatabase db = Room.databaseBuilder(context, MyDatabase.class, "db_name")
.addMigrations(new Migration(EXISTING_VERSION, EXISTING_VERSION + 1) {
@Override
public void migrate(SupportSQLiteDatabase database) {
// NOOP
}
}).build();
スキーマが一致しなくても、SQLite
からRoom
に移行する方法があるかどうか疑問に思っている人にとって、答えは[〜#〜 ] yes [〜#〜]、スキーマが一致しなくても、SQLite
から部屋に移行できます。
可能ですが、非常に注意深い変換が必要です。プロセスはカバーするのに非常に多くのステップを必要とするので、私はあなたが従うことができる参照を残すだけです。
それが少数の人に役立つことを願っています。