2009-05-14 6 views
0

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

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

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

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

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

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

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

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

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

ответ

0

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

+0

проблема заключается в том, что я работаю с несколькими базами данных sqlite и не хочу их удалять, но просто обновляю его. –

1

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

+0

Слияние звуков интересно, как вы это делаете? –

1

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

0

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

Смежные вопросы