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 и версией выпуска локально. Эта ошибка стоила мне много сбоев в производственном приложении, пока я не удалил столбец как быстрое исправление.

Надеюсь, у кого-то есть идея:)

0 ответов

Другие вопросы по тегам