web-dev-qa-db-ja.com

既存のSQLiteアプリケーションをRoomPersistence Libraryに移行するにはどうすればよいですか?

質問するのは少し早いかもしれませんが、既存のSQLiteデータベースアプリケーションを新しいAndroid Room Persistance Libraryに移行/アップグレードする方法は可能ですか?

12
Marko Gajić

ルームエンティティが現在のテーブルスキーマと一致すると仮定すると、同じデータベース/テーブルを引き続き使用できます。

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();
14
Gubbel

スキーマが一致しなくても、SQLiteからRoomに移行する方法があるかどうか疑問に思っている人にとって、答えは[〜#〜 ] yes [〜#〜]、スキーマが一致しなくても、SQLiteから部屋に移行できます。

可能ですが、非常に注意深い変換が必要です。プロセスはカバーするのに非常に多くのステップを必要とするので、私はあなたが従うことができる参照を残すだけです。

SQLからRoomへの移行に関するハンドブック

SQLiteからRoomに段階的に移行します

それが少数の人に役立つことを願っています。

0
musooff