Миграция базы данных номеров с новым столбцом с использованием уникальных значений

#android #mysql #android-studio #android-room #database-migration

Вопрос:

Я пытаюсь добавить новый столбец в таблицу базы данных моей комнаты для ИНДЕКСА ! Как я могу использовать МИГРАЦИЮ для изменения таблицы таким образом, чтобы я получал все предыдущие данные в таблицу вместе с новыми уникальными индексами для каждой строки.

Ответ №1:

Если это новые значения и они уникальны, вам придется сгенерировать их.

Миграция будет осуществляться в соответствии с:-

  1. Переименуйте исходную таблицу.
  2. Создайте таблицу, используя измененную схему.
  3. Создайте индекс(ы), используя измененную схему.
  4. извлеките данные из переименованной исходной таблицы, применив уникальное значение и вставив данные в новую таблицу.
  5. это может быть, а может и не быть осуществлено в рамках одного запроса.
  6. возможно, потребуется, чтобы данные были извлечены в курсор, возможно, будет полезен матричный курсор.
  • Примечание. Чтобы получить правильный SQL для создания индексов таблиц, затем получите SQL из сгенерированной java после компиляции с изменениями. Сгенерированная java хорошо видна, если вы используете Android View. Соответствующий класс имеет то же имя, что и класс @Database с суффиксом _Impl. SQL можно найти в методе createAllTables.