【发布时间】:2018-02-15 04:02:35
【问题描述】:
在开发过程中,我的 Room db 架构非常不稳定。每次我对架构进行任何更改时,我都需要更新我的版本号,就像这样;
@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();
有什么方法可以避免为每个“小”更改更新版本号?正如我所说,现在情况非常不稳定。
【问题讨论】:
-
您可以卸载应用程序或清除应用程序的数据。
-
我可以以编程方式进行吗?做这些事情中的任何一个都比简单地更新构建之间的版本号要多。顺便说一句,我正在使用虚拟设备 (AVD) 进行调试。
-
是的,您可以使用
context.deleteDatabase(database_name)以编程方式删除数据库(其中 context 和 database_name 分别替换) -
为什么要增加版本号?保持不变,每次你都会有一个新的空数据库
-
因为如果架构更改并且您不更改版本号,您会收到此异常“房间无法验证数据完整性。看起来您已更改架构但忘记更新版本号。您可以通过增加版本号来解决这个问题”
标签: android android-room