#java #android #sqlite
В первой версии приложения была копирована для работы приложения из assets база данных, с множеством таблиц для чтения, в которую я также добавил свою одну таблицу для постоянного редактирования. Сейчас считаю это ошибкой, лучше бы в отдельном файле базы данных сделал её. Теперь, во второй версии приложения, необходимо частично обновить таблицы для чтения. Как это лучше сделать? Есть две идеи: Отредактировать базу данных из assets(таблицы для чтения) Обновить базу данных приложения(каждое поле отдельно) Отредактировать базу данных из assets(таблицы для чтения) Скопировать таблицы для чтения из assets в базу данных приложения, оставив одну таблицу для редактирования Второй пункт думаю лучше будет, но получится ли его реализовать? Или таблицу(для редактирования) занести в память, удалить старую базу данных, скопировать новую и создать еще одну базу данных с таблицей для редактирования?
Ответы
Ответ 1
Стандартный механизм для обновление БД предусмотренный системой это наследование от SQLiteOpenHelper и реализация метода SQLiteOpenHelper.onUpgrade. onUpgrade принимает 2 параметра, предыдущая версия БД и новая версия, в зависимости от них необходимо будет в методе onUpgrade() реализовать ветвление и провести внутри вызов SQL инструкции ALTER TABLE или если все совсем плохо (модификации очень большие), то завести еще одну промежуточную табличку с помощью которой провести апгрейд БД. Начальные данные для обновляемых данных конечно же лучше положить опять в asset P.S. Версия БД задается в конструкторе хелпера и обычно задается просто константой в коде.Ответ 2
Получится. Sqlite умеет работать с базой из нескольких файлов. Посмотрите ответ из этого обсуждения.
Комментариев нет:
Отправить комментарий