当前位置: 首页 > 知识库问答 >
问题:

从2迁移到1是必要的,在房间

壤驷棋
2023-03-14

我有一个应用程序,使数据库的房间。然后我将数据库移动到服务器,以填充。在更新或初始化应用程序时,应用程序下载填充的数据库。但是当我想按房间使用它时,我得到一条错误消息:

String SALE_DATABASE_NAME = "SaleDatabase.db";
SaleDatabase saleDatabase = Room.databaseBuilder(this,
        SaleDatabase.class, SALE_DATABASE_NAME)
        //.fallbackToDestructiveMigration()    
        .allowMainThreadQueries()
        .build();
saleDatabase.getPathDao().getPaths(); //Getting error
@Database(entities = {OrderEntity.class, OrderDetailEntity.class
        , CardIndexDetailEntity.class, CardIndexEntity.class
        , CategoryEntity.class, CodingEntity.class
        , CustomerBasicEntity.class, CustomerBuyEntity.class
        , CustomerChequeEntity.class, CustomerCreditEntity.class
        , PathEntity.class, UnvisitedCustomerReasonEntity.class
        , ProfileCategoryEntity.class, SubCategoryDetailEntity.class
        , SubCategoryEntity.class, ReasonEntity.class}, version = 1)
public abstract class SaleDatabase extends RoomDatabase{

    public abstract PathDao getPathDao();

    @Override
    protected SupportSQLiteOpenHelper createOpenHelper(DatabaseConfiguration config) {
        return null;
    }

    @Override
    protected InvalidationTracker createInvalidationTracker() {
        return null;
    }
}

所以我的问题是:

  1. 为什么说迁移2到1是降级作业?
  2. 如何忽略版本直到完全构建应用程序
  3. 如果我将我的版本更新为2,是否有办法清理和重置房间?

共有1个答案

柏正平
2023-03-14

我是这样解决的:

  1. 清除应用程序数据
  2. 清单集中的
  3. Android:allowbackup=“false”
 类似资料:
  • 我开发了一个web服务应用程序,它可以很好地与jersey 1.x(1.16)一起工作。我最近试图迁移到最新的稳定的jersey 2.8版本 我删除了V1.16的所有jersey jar文件,然后从链接-https://jersey.java.net/download.html下载了V2.8的jersey jar 根据文档,我了解到,我应该有最新的servlet jar,servlet JAR2.

  • 更喜欢观看视频?可以点此观看。 下面以 antd-admin 为例,介绍如何从 umi@1 升级到 umi@2 。 npm 依赖 升级 umi 到 ^2.0.0-0,并使用 umi-plugin-react 代替以前的众多插件,包含 umi-plugin-dva、umi-plugin-dll、umi-plugin-routes、umi-plugin-polyfill 和 umi-plugin-lo

  • 问题内容: 将Express.js从版本2更新到了版本3,以下调用中断了,因为它不再存在于V3中: 有一个迁移指南说: (使用中间件+ res.locals) 但是我很困惑如何做到这一点。是否有一个更具体的示例说明如何进行迁移? 相关的SO post: Node.js Express3.0 问题答案: 我有同样的问题 session.user ,只是通过了解该app.use功能必须是固定的, 在

  • 我们的应用程序有DB14版本,并使用android sqllite帮助器。现在我们正在使用房间数据库,并将所有数据库的东西迁移到房间。我们已经定义了从1_2,2_3的所有迁移。到13_14,并给出所有这些int构建 这是正确的做法吗。如果我用DB14版本安装了非房间版本的应用程序,并且我试图用相同的DB14版本更新它到房间版本的应用程序,我会得到错误: IllegalStateException:

  • 并且我发现了基于数据库版本4的可能场景的迁移varargs。 我的问题是,假设我使用的是db v1的Room,当我的应用程序到达db v10时,我将不得不编写多少迁移方法? 在sqlite中,我们在中获得已安装应用程序的当前db版本,我们只需通过开关大小写而不使用break语句,以便满足所有db升级。

  • FAQ 哇,非常长的一页!是否意味着 Vue 2.0 已经完全不同了呢,是否需要从头学起呢,Vue 1.0 的项目是不是没法迁移了? 非常开心地告诉你,并不是!几乎 90% 的 API 和核心概念都没有变。因为本节包含了很多详尽的阐述以及许多迁移的例子,所以显得有点长。不用担心,你不必从头到尾把本节读一遍! 我该从哪里开始项目迁移呢? 首先,在当前项目下运行迁移工具。我们非常谨慎地把高级 Vue