Показать сообщение отдельно
Старый 08.11.2013, 12:09
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 4  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
Кэп мне тут подсказывает, что нужно проверить существует ли файл пользовательской базы. Если нет, то это новая установка, если есть - апдейт.
Ну я так и делаю. См. код выше.
Цитата:
Да и зачем пользовательскую базу затирать? Можно же просто недостающие колонки добавить, а лишние дропнуть. Ровно как и в существующей (хотя дефолтную можно и затереть)
Мне не нужно её затирать. Наоборот, нужно всегда сохранять, если только юзер сам не удалит базу удалением приложения.
А вот main.db мне именно нужно при апдейте затирать - каждый апдейт приносит новый контент, который юзер должен видеть.
Цитата:
а апдейт тут при чем?
Меня интересует, при апдейте приложения с Google Play или AppStore происходит стирание файлов в applicationStorageDirectory? По идее не должно. А при удалении и повторной установке видимо происходит.

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

Проверяем встроенную базу данных main:
Код AS3:
protected var updateApp:Boolean = false;
 
if (!writeSessionDB.exists) {
updateApp = true;
embededSessionDB.copyTo(writeSessionDB);// Если её нет, то это новый инсталл - копируем user.db
}
 
// Если она есть, то или апдейт или просто очередной запуск приложения, не трогаем user.db
 
if (updateApp && !writeSessionDBuser.exists) {
			embededSessionDBuser.copyTo(writeSessionDBuser);
	}
Добавлено через 35 минут
Так, все равно какая-то ерунда получается
Мне нужно перезаписывать main.db при каждом обновлении. Но если он присутствует в хранилище, то этого не произойдет. Что делать?
__________________
In Code We Trust