Flutter - Как обновить структуру таблицы в Sqflite?
Мое приложение находится в производстве, и я хочу управлять пользовательскими данными, когда пользователь обновляет приложение без потери своих данных, как я могу добиться этого с sqflite
, Явно хочу добавить столбец и удалить другой.
1 ответ
Решение
Вероятно, вы можете добавить столбец, используя raw sql, но sqlite (и, следовательно, sqflite) не поддерживает удаление столбца. Для этого вам необходимо сделать следующее:
- увеличить номер версии базы данных
- в
onUpgrade
скопировать старые столбцы базы данных во временную таблицу - удалить исходную таблицу
- создать новую таблицу, используя исходное имя таблицы, но с правильной схемой
- скопировать данные из временной таблицы
- удалить временную таблицу
Извините, это не полный ответ, но это направление, в котором я бы пошел, если бы оказался в вашей ситуации.
У меня такая же проблема, и я нашел эту статью, которая кажется хорошим решением.