Если я обновлю базу данных через DB Browser, она не изменится в моем приложении
У меня есть база данных SQLite, которую я создал с помощью DB Browser, я поместил ее в файл активов и использую SQLiteAssetHelper для доступа к ней. Почему, если я обновлю какую-либо запись, используя DB Browser, она не изменится в моем приложении?!
Также, если я выполню запрос вставки в моем приложении, новая запись не появится в браузере БД.
2 ответа
Вы имеете дело с 3 различными базами данных:
База данных, которую вы создаете с помощью DB Browser и хранится в папке на вашем компьютере.
База данных в
assets
папка, которая является копией базы данных, которую вы создали с помощью DB BrowserБаза данных в вашем эмуляторе / устройстве, которая была создана при первом запуске приложения.
Эта последняя база данных изначально была копией базы данных, которую вы имели вassets
папка.
Когда вы вносите изменения в базу данных в случае 1, эти изменения не отражаются ни в базе данных в assets
папку или в вашем эмуляторе / устройстве.
Если вы хотите, чтобы эти изменения были внесены в базу данных вашего эмулятора / устройства, вы должны:
- Удалить базу данных из
assets
и скопируйте туда измененную базу данных DB Browser. - Удалите приложение с эмулятора / устройства, чтобы удалить базу данных.
- Запустите приложение еще раз, чтобы база данных была воссоздана в эмуляторе / устройстве.
Когда вы вносите изменения в эмулятор / устройство и хотите просмотреть базу данных с помощью DB Browser:
- В Android Studio выберите " Просмотр"> "Инструмент Windows"> "Обозреватель файлов устройства".
- В окне " Обозреватель файлов устройств" перейдите в папку data/data/yourpackagename/database, щелкните правой кнопкой мыши свою базу данных и выберите " Сохранить как...". Выберите папку, в которую вы хотите сохранить базу данных, и все готово.
Теперь вы можете открыть базу данных с помощью DB Browser.
Так как SQLiteAssetHelper
не копирует базу данных из ресурсов, если файл базы данных уже существует в целевом расположении.
Если в базе данных произошли изменения во время разработки, вы можете просто удалить приложение, чтобы удалить старую версию базы данных.
Если это изменение в выпущенной версии вашего приложения, вам необходимо реализовать управление версиями базы данных и сценарии обновления, как указано в файле readme.
Также, если я выполню запрос вставки в моем приложении, новая запись не появится в браузере БД.
Вы вставляете не в ту же базу данных, а в ее копию. Вам нужно вытащить базу данных с вашего устройства и проверить оттуда. См. Например, Android AdB, получить базу данных с помощью запуска от имени