У меня проблема с моим приложением в Java. После выхода новой версии приложения некоторые пользователи присылают мне информацию, в которой нет данных. Но в моем справочном мобильном (где у меня есть только версия из Google Play) у меня есть данные истории. Миграция была связана с изменением типа данных (INT -> REAL) в комнате DB.
Так что я не знаю, как выяснить, где проблема - если все еще дата в БД, но только не достижима, или если данные в БД потерял.
В firebase были некоторые ошибки, когда мы забыли изменить переменные в коде:
- error
Migration didn't properly handle:
) - erro
Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.
-> поэтому мы выпустили новую версию -> теперь в Firebase у нас нет никаких ошибок, но все же некоторые пользователи не имеют данных.
Версия комнаты: 2.2.5 ( до релиза был 2.2.4 )
У кого-то была похожая проблема? или кто-нибудь может посоветовать "как найти, где проблема"?
РЕДАКТИРОВАТЬ:
Миграция:
static final Migration MIGRATION_6_7 = new Migration(6, 7) {
@Override
public void migrate(SupportSQLiteDatabase database) {
//create new table
database.execSQL("CREATE TABLE work_days_new2 (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " + ...
"hour_salary_day REAL NOT NULL DEFAULT 0.0, " + ...
);
//copy old data into new table
database.execSQL("INSERT INTO work_days_new2 SELECT * FROM work_days ");
//remove old table
database.execSQL("DROP TABLE work_days");
//rename the table
database.execSQL("ALTER TABLE work_days_new2 RENAME TO work_days");
}
};
Изменение модели, например, форма INT -> DOUBLE:
@ColumnInfo(name = "hour_salary_day")
private double hourSalaryDay;
Спасибо,