Android Room - 自动增加@database版本号?

时间:2018-02-15 04:02:35

标签: android android-room

在开发期间,我的Room数据库架构非常不稳定。每次我对架构进行任何更改时,我都需要更新我的版本号,就像这样;

@Database(version = 27,
    entities = {MyClass.class})

public abstract class MyDatabase extends RoomDatabase

我也在使用fallbackToDestructiveMigration;

Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, SystemStrings.ROOM_DATABASE_NAME)
                // allow queries on the main thread.
                // Don't do this on a real app! 
                .allowMainThreadQueries()
                .fallbackToDestructiveMigration()
                .build();

有没有办法避免更新每个“小”更改的版本号?正如我所说,现在情况非常不稳定。

1 个答案:

答案 0 :(得分:5)

删除数据库会导致每次运行App时都会初始化/构建数据库。

你可以这样做: -

context.getApplicationContext().deleteDatabase(SystemStrings.ROOM_DATABASE_NAME); //<<<< ADDED before building Database.
//Your existing code follows 
Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, SystemStrings.ROOM_DATABASE_NAME)
                // allow queries on the main thread.
                // Don't do this on a real app! 
                .allowMainThreadQueries()
                .fallbackToDestructiveMigration()
                .build();

当然,您不会在真正的应用中使用此功能