|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
Добрый день. Есть опубликованное в google play приложение. Со временем появилась необходимость его обновить. Столкнулся с проблемой: закидываю в assets новую версию БД, запускаю приложение, но в эмуляторе всё равно находится старая версия БД. Полагаю, что если загрузить новое приложение в GP, ситуация у пользователей будет такая же. Как правильно обновить приложение с новой БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2016, 09:58 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoКак правильно обновить приложение с новой БД? http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2016, 10:01 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
Насколько я понял, нужно реализовать метод onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion). С newVersion всё понятно, зашиваем в код, передаём методу onUpgrade. А как быть с oldVersion? Если его вшить в код, то база будет постоянно обновляться. Я вижу такой механизм: п.1. Проверяем, (CASE WHEN oldVersion < newVersion THEN 'чего-то делаем' ELSE 'ничего не делаем' END) п.2. oldVersion := newVersion Тогда н.б. хранить oldVersion тоже в БД и при каждом апдейте, поле тоже апдейтить. Насколько правилен такой подход и есть ли ещё варианты реализации по-лучше? М.б. у андроида есть спец метод getCurrentDbVersion() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 14:33 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoА как быть с oldVersion? Если его вшить в код, то база будет постоянно обновляться. Все таки стоит читать ссылки-то... Методы onCreate, onUpgrade дергаются андроидом при необходимости . Самому их вызывать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 14:50 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
А как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 14:55 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoА как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ? Из конструктора. Остается лишь правильно записывать ходы, где и что меняется от версии к версии, запоминать их и воспроизводить. И тогда, если пользователь установит на первую версию сразу десятую, то хелпер воспроизведет шаги со второго по десятый. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 15:01 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoА как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ? из PRAGMA USER_VERSION ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 15:16 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
И как вывести PRAGMA и USER_VERSION ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 17:58 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoИ как вывести PRAGMA и USER_VERSION ? в приложении тебе это не нужно, я поделился чисто в образовательных целях. ну или это нужно изредка для определения версии при наличии файла на руках. "PRAGMA user_version" это SQL команда ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2016, 18:11 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
wadmanОстается лишь правильно записывать ходы, где и что меняется от версии к версии, запоминать их и воспроизводить Не совсем подходит. Проще грохнуть старую, скопировать новую. Поэтому решил метод onUpgrade не трогать. Выбрал вариант хранить текущую версию в самой БД. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 14:53 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoНе совсем подходит. Проще грохнуть старую, скопировать новую. можно и так, если условия позволяют sanringoВыбрал вариант хранить текущую версию в самой БД. да она и так там хранится, в USER_VERSION ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 14:59 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
Загрузил обновление. Теперь самому заходить на сайт или приложение автоматически само обновится. Есть ли принудительная команда, которая проверяет наличие обновления? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2016, 18:02 |
|
Обновление приложения и базы данных
|
|||
---|---|---|---|
#18+
sanringoЗагрузил обновление. В маркет? sanringoЕсть ли принудительная команда, которая проверяет наличие обновления? Принудительный нет, но есть код, который проверяет в маркете версию. Только зачем это? Говорят, что по статистике более 90% пользователей андроид заходят в маркет каждый день. Это не считая тех, у кого обновления ставятся автоматом. https://www.google.ru/search?q=android check version in market ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 09:00 |
|
|
start [/forum/topic.php?fid=13&fpage=13&tid=1331150]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 258ms |
total: | 385ms |
0 / 0 |