Table Migration падает с обновлением магазина, но работает локально
Я использую Activeandroid 3.1.0 для хранения некоторых своих данных в базах данных. Несколько дней назад мне нужно было обновить таблицу, чтобы добавить еще один столбец.
Рабочий процесс: Увеличить версию БД с 1 до 2:
<meta-data
android:name="AA_DB_NAME"
android:value="sqlite.db"/>
<meta-data
android:name="AA_DB_VERSION"
android:value="2"/>
Добавьте новый столбец в модель:
@Column(name = "test_column") private boolean test_column;
Написать сценарий миграции:
ALTER TABLE #TABLENAME# ADD COLUMN test_column INTEGER;
Я искал в библиотеке и обнаружил, что логические переменные Java и преобразованы в целое число.
Этот скрипт находится под:
app/src/main/assets/migrations/2.sql
Тестовый вариант: сохранить некоторые элементы -> обновить с помощью шагов, описанных выше -> сохранить некоторые элементы и использовать столбец
Проблема: если я проверяю это локально, просто загружая приложение на телефон напрямую, оно работает, но когда я загружаю приложение с миграцией в PlayStore, оно не работает. Я получаю типичную ошибку "Нет такой колонки".
Кто-нибудь знает, если скрипт миграции не доставляется в финальный апк через магазин? Я думал, что Proguard может удалить файл, но он также работает с Proguard и версией выпуска локально. Эта ошибка стоила мне много сбоев в производственном приложении, пока я не удалил столбец как быстрое исправление.
Надеюсь, у кого-то есть идея:)