если я обновлю базу данных через DB Browser, она не изменится в моем приложении - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть база данных SQLite, которую я создал с помощью DB Browser, я поместил ее в файл активов и использую SQLiteAssetHelper для доступа к ней.Почему, если я обновляю какую-либо запись, используя DB Browser, она не изменится в моем приложении?!
Кроме того, если я выполню запрос вставки в моем приложении, новая запись не появится в DB Browser.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы имеете дело с 3 различными базами данных:

  1. База данных, которую вы создаете с помощью браузера БД и хранится в папке на вашем компьютере.

  2. База данных в папке assets, которая является копией базы данных, созданной вами с помощью браузера БД

  3. База данных в вашем эмуляторе / устройстве, которая была создана при первом запускеприложение.Эта последняя база данных изначально была копией базы данных, которая была у вас в папке assets.

Когда вы вносите изменения в базу данных в случае 1, эти изменения не отражаются ни в одной из баз данных.в папке assets или в вашем эмуляторе / устройстве.Если вы хотите, чтобы эти изменения были внесены в базу данных вашего эмулятора / устройства, вы должны:

  • Удалить базу данных из assets и скопировать туда измененную базу данных браузера БД.
  • Удалитьприложение из эмулятора / устройства, чтобы база данных была удалена.
  • Запустите приложение еще раз, чтобы база данных была воссоздана в эмуляторе / устройстве.

Когда вы вносите изменения в эмулятор / устройство и хотите просмотреть базу данных с помощью браузера БД:

  • В Android Studio выберите Вид> Инструмент Windows>Обозреватель файлов устройств
  • В окне Обозреватель файлов устройств перейдите в папку data / data / yourpackagename / database и щелкните правой кнопкой мыши свою базу данных и выберите Сохранить как ... .Выберите папку, в которую вы хотите сохранить базу данных, и все готово.Теперь вы можете открыть базу данных с помощью DB Browser.
0 голосов
/ 10 декабря 2018

Поскольку SQLiteAssetHelper не копирует базу данных из ресурсов, если файл базы данных уже существует в целевом расположении.

Если в базе данных произошли изменения во время разработки, вы можете просто удалить приложение и удалить его.старая версия базы данных.

Если это изменение в выпущенной версии вашего приложения, вам необходимо реализовать управление версиями базы данных и сценарии обновления, как указано в readme .

Кроме того, если я выполню запрос вставки в моем приложении, новая запись не появится в браузере БД.

Вы не вставляете в ту же базу данных, а копируете ее.Вам нужно вытащить базу данных с вашего устройства и проверить оттуда.См. Например android adb, получить базу данных, используя run-as

...