Изменения в файле sqlite при создании новой версии приложения - PullRequest
0 голосов
/ 30 марта 2012

У меня есть файл sqlite в моем приложении.приложение с корпоративным сертификатом.

Теперь, если я собираюсь создать новую версию с изменениями в базе данных, тогда:

1) мне нужно изменить имя файла Sqlite?
2) если да, то есть ли способ, если любой человек, использующий мое приложение, у которого есть сохраненные данные в приложении, будет автоматически вставлен в новую версию моего приложения.

в противном случае, если я создам новый файл, а затем старые данные будут удалены !!!

Заранее спасибо ..

Ответы [ 2 ]

1 голос
/ 30 марта 2012

1) AFAIK, при обновлении старый комплект приложений заменяется новым комплектом приложений.Но пользовательские данные остаются нетронутыми.то есть копия базы данных sqlite, которую приложение изменяет с использованием пользователем, не удаляется / заменяется.

2) Таким образом, вы можете отправить изменения в БД в виде запросов:

a) Новые таблицы вводятся в виде CREATE TABLE запросов.

b) Изменения в структуре таблиц выполняются как ALTER TABLE запросов.

3) Теперь одна проблема заключается в том, что вы этого не сделалиподумайте обо всем этом, когда вы отправили старую версию.Итак, как вы убедитесь, что запросы 2a и 2b выполняются только при обновлении?

a) Когда вы впервые получаете контроль в приложении, прежде чем разрешить взаимодействие с пользователемвключите пустышку SELECT SINGLE * FROM <tablename> в таблицу, которую вы «изменили» в новой версии.

b) Используйте sqlite3_column_count и sqlite3_column_name, чтобы узнать, какой версии приложения соответствует БД [old илиnew].

c) Если это новая версия (т.е. новые столбцы уже существуют), ничего не делайте, иначе вызовите запросы, которые я упоминал ранее как 2a и 2b .

0 голосов
/ 30 марта 2012

Если вы еще не начали использовать это, то это, вероятно, спорный вопрос, но Core Data справляется с миграциями (IMHO) довольно хорошо; Достаточно того, что оно стоит препятствий для изучения API. Мы добились больших успехов (включая сложные миграции, вставку новых объектов "между" отношениями и т. Д.).

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