Измените тип данных столбца в Sqlite, используя Room Persistence Storage. - PullRequest
0 голосов
/ 08 мая 2018

У меня есть таблица Invoice как:

TABLE Invoice (UserId INTEGER NOT NULL, InvoiceNumber TEXT NOT NULL, Amount REAL NOT NULL, ...)

Я хочу изменить тип данных столбца UserId на TEXT без потери данных, уже присутствующих в таблице.

Как это сделать, используя Room без удаления и повторного создания таблицы?

1 Ответ

0 голосов
/ 08 мая 2018

Вы не можете напрямую изменить тип данных столбца (UserId). Вы можете выполнить следующие шаги, чтобы решить вашу проблему!

  1. Добавить новый столбец (UserIdTemp)
  2. Сделать копию существующих данных из UserId в UserIdTemp (преобразовать данные в требуемый формат)
  3. Оставить старый столбец (UserId)
  4. Создать новый столбец (UserId) с новым типом данных
  5. Копировать данные из UserIdTemp в UserId
  6. Дроп UserIdTemp
...