在开发期间,我的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();
有没有办法避免更新每个“小”更改的版本号?正如我所说,现在情况非常不稳定。
答案 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();
当然,您不会在真正的应用中使用此功能