6
新しいテーブルのみが追加された場合のルームデータベースの移行
仮定してみましょう、私は単純な部屋データベースを持っています: @Database(entities = {User.class}, version = 1) abstract class AppDatabase extends RoomDatabase { public abstract Dao getDao(); } ここで、新しいエンティティを追加します。Petバージョンを2にバンプします。 @Database(entities = {User.class, Pet.class}, version = 2) abstract class AppDatabase extends RoomDatabase { public abstract Dao getDao(); } もちろん、Roomは例外をスローします。 java.lang.IllegalStateException: A migration from 1 to 2 is necessary. 私はUserクラスを変更していないと仮定し(すべてのデータが安全であるため)、新しいテーブルを作成するだけの移行を提供する必要があります。そこで、Roomによって生成されたクラスを調べ、生成されたクエリを検索して新しいテーブルを作成し、それをコピーして移行に貼り付けます。 final Migration …