iPhone SQLite Управление файлами - PullRequest
0 голосов
/ 14 мая 2009

Я занимаюсь разработкой приложения и использую SQLite в качестве хранилища базы данных. Я хочу добавлять и обновлять базу данных sqlite на протяжении всего срока действия моего приложения, поэтому я скопировал ее в каталог документов, чтобы я мог выполнять любые действия с моей базой данных, кроме только выбора из нее.

Но так как я разрабатываю «время», моя база данных часто изменяется (архитектура базы данных сделана другим разработчиком) в процессе

На iPhone я проверяю

  1. , если база данных существует в каталоге документов
  2. (если нет) скопируйте его в него.
  3. использовать эту базу данных

но когда я хочу обновить свою базу данных (я сделал это в отдельном менеджере sqlite), происходит сбой процесса копирования новой версии, потому что я проверяю только, существует ли база данных.

Кто-нибудь из вас, ребята, испытывал такую ​​же проблему? и что ты сделал, чтобы решить эту проблему ..

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

Есть ли способ отредактировать файл sql из каталога документов в каком-либо инструменте управления sqlite?

или есть лучшие решения?

Ответы [ 4 ]

1 голос
/ 14 мая 2009

Что я сделал в своем приложении: - Сначала я делаю то же самое. Проверьте, находится ли БД в Документах или нет. - Затем я проверяю ранее установленную версию: небольшой текстовый файл в документах говорит мне это - Если требуется обновление, я объединяю базы данных: одну в / Documents с другой из комплекта приложения. - В моем случае мне нужно слить. В вашем может быть, вы можете просто скопировать, если пользователь не меняет его.

1 голос
/ 14 мая 2009

Что я делаю, так это создаю серию сценариев sql, которые могут обновляться с предыдущей версии 1.sql, 2.sql, 3.sql и т. Д. Когда я открываю свою базу данных, я запрашиваю версию из таблицы настроек и сравните его с новейшим файлом .sql, который я нашел в своем комплекте приложений. Если есть более новая версия, я начинаю запускать сценарии .sql, пока не столкнусь с последней версией. Для меня это хорошо сработало в нескольких проектах.

0 голосов
/ 15 мая 2009

То, что я делаю, похоже на то, что вы делали, за исключением того, что я добавил небольшую вторую таблицу в базу данных. Эта база данных содержит только одну запись - номер версии базы данных. Итак, вы начинаете с версии 1 в этой таблице базы данных. Затем, когда вы меняете структуру, вы обновляете номер этой версии до 2. В своем коде запуска проверьте, существует ли база данных. Если это так, проверьте номер версии базы данных. Если номер версии базы данных соответствует ожидаемому, просто продолжите. Если это меньше, чем вы ожидаете, вызовите некоторый код, чтобы обновить базу данных до текущей версии, а затем продолжите.

0 голосов
/ 14 мая 2009

Вы пытались удалить приложение на iPhone, а после этого снова развернуть приложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...