Необходим переход с 2 на 1, в комнате - PullRequest
0 голосов
/ 15 мая 2018

У меня есть приложение, которое создает базу данных по комнатам. Затем я перемещаю базу данных на сервер для заполнения. При обновлении или инициализации приложения загруженная база данных загружается приложением. Но когда я хочу использовать его по комнате, я получаю сообщение об ошибке:

Необходим переход от 2 к 1. Пожалуйста, предоставьте миграцию в построитель или вызовите fallbackToDestructiveMigration в построителе в В этом случае Room заново создаст все столы.

Я очистил всю папку сборки, затем я сделал все снова. Но я снова получаю ту же ошибку!

Где я получаю ошибку:

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;
    }
}

Мой хеш-код в базе данных и классе SaleDatabase_Impl.java одинаков.

Итак, мои вопросы:

  1. Почему миграция 2 к 1 считается пониженной работой?
  2. Как я могу игнорировать версию, пока приложение не будет полностью построено
  3. Есть ли способ очистить и сбросить комнату, если я обновлю свою версию до 2?

1 Ответ

0 голосов
/ 19 июля 2018

Я решил следующим образом:

  1. Очистить данные приложения
  2. В наборе манифестов android:allowBackup="false"
...