Room 持久库将版本重置为 1
Room persistent library reset version to 1
有什么方法可以将房间库版本重置为 1。我尝试卸载 phone 上的应用程序。它不起作用。
仅当您完全删除该应用程序时,使用 Room 降级版本才有效。
您可以通过 adb (adb uninstall your.app.package) 删除您的数据库,或者使用您的设备删除应用程序概览中的 data/cache。
实际上有一个更快的方法,如果您不介意丢失数据。但我想上面的选项在这个意义上并没有更好。
当您构建数据库时,您必须像下面的示例一样设置 .fallbackToDestructiveMigration()
。
database = Room
.databaseBuilder(getApplicationContext(), ActionsDatabase.class, "database.db")
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
这样,每次更改数据库版本时,数据库都会重建。您还可以来回更改版本号,如果您愿意,可以从 1 到 2 再回到 1。
我找到了将房间数据库重置为版本 1 的简单解决方案。
在我的应用程序中,我将有一个 Test.db sqlite 文件,我最初是使用 SQL ite 浏览器创建的。
当我需要将房间数据库重置为版本 1 时。
我将在 SQL 项目浏览器中创建一个新的数据库 (Test.db ) 文件,进行所有必要的更改。并将数据库文件粘贴到资产文件夹中。将版本保持为 1.
这对我有用。
谢谢@wschopohl
我的问题已经解决,按照你的方式进行。我可以 return 版本房间数据库到 1.
因此,将 return 版本更改为 1 的简单方法是您需要在构建数据库时添加行方法 .fallbackToDestructiveMigration()
。
然后,您可以将版本升级到“n”并返回到 1,例如 1 到 2 并返回到 1。
像这样:
database = Room
.databaseBuilder(getApplicationContext(), ActionsDatabase.class, "database.db")
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
有什么方法可以将房间库版本重置为 1。我尝试卸载 phone 上的应用程序。它不起作用。
仅当您完全删除该应用程序时,使用 Room 降级版本才有效。
您可以通过 adb (adb uninstall your.app.package) 删除您的数据库,或者使用您的设备删除应用程序概览中的 data/cache。
实际上有一个更快的方法,如果您不介意丢失数据。但我想上面的选项在这个意义上并没有更好。
当您构建数据库时,您必须像下面的示例一样设置 .fallbackToDestructiveMigration()
。
database = Room
.databaseBuilder(getApplicationContext(), ActionsDatabase.class, "database.db")
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
这样,每次更改数据库版本时,数据库都会重建。您还可以来回更改版本号,如果您愿意,可以从 1 到 2 再回到 1。
我找到了将房间数据库重置为版本 1 的简单解决方案。
在我的应用程序中,我将有一个 Test.db sqlite 文件,我最初是使用 SQL ite 浏览器创建的。
当我需要将房间数据库重置为版本 1 时。 我将在 SQL 项目浏览器中创建一个新的数据库 (Test.db ) 文件,进行所有必要的更改。并将数据库文件粘贴到资产文件夹中。将版本保持为 1.
这对我有用。
谢谢@wschopohl
我的问题已经解决,按照你的方式进行。我可以 return 版本房间数据库到 1.
因此,将 return 版本更改为 1 的简单方法是您需要在构建数据库时添加行方法 .fallbackToDestructiveMigration()
。
然后,您可以将版本升级到“n”并返回到 1,例如 1 到 2 并返回到 1。
像这样:
database = Room
.databaseBuilder(getApplicationContext(), ActionsDatabase.class, "database.db")
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();