#android #mysql #android-studio #android-room #database-migration
Вопрос:
Я пытаюсь добавить новый столбец в таблицу базы данных моей комнаты для ИНДЕКСА ! Как я могу использовать МИГРАЦИЮ для изменения таблицы таким образом, чтобы я получал все предыдущие данные в таблицу вместе с новыми уникальными индексами для каждой строки.
Ответ №1:
Если это новые значения и они уникальны, вам придется сгенерировать их.
Миграция будет осуществляться в соответствии с:-
- Переименуйте исходную таблицу.
- Создайте таблицу, используя измененную схему.
- Создайте индекс(ы), используя измененную схему.
- извлеките данные из переименованной исходной таблицы, применив уникальное значение и вставив данные в новую таблицу.
- это может быть, а может и не быть осуществлено в рамках одного запроса.
- возможно, потребуется, чтобы данные были извлечены в курсор, возможно, будет полезен матричный курсор.
- Примечание. Чтобы получить правильный SQL для создания индексов таблиц, затем получите SQL из сгенерированной java после компиляции с изменениями. Сгенерированная java хорошо видна, если вы используете Android View. Соответствующий класс имеет то же имя, что и класс @Database с суффиксом _Impl. SQL можно найти в методе createAllTables.