У меня есть дилемма относительно бесплатного приложения, которое я разрешаю пользователям импортировать свои данные (файл sqlite на SD-карте) в платное приложение.
После выполнения этих обновлений; Я понял, что если мне нужно будет внести изменения в базу данных в будущем, пользователю нужно будет импортировать ту же версию БД (из бесплатного приложения) в существующую версию (платного приложения).
Пример из реальной жизни:
Допустим, версия 1 обоих приложений имеет 1 таблицу с 5 столбцами. Я делаю обновление до v2, теперь 1 таблица имеет 6 столбцов.
Когда потенциальный пользователь выполняет импорт в платном приложении для переноса данных из бесплатного приложения, есть вероятность, что бесплатное приложение может находиться в БД версии 1 (если пользователь недавно не обновлял приложение), в то время как платное приложение будет ищу БД версии 2. Я предполагаю, что это приводит к сбою при запуске.
Как я могу сделать такую проверку в платном приложении перед импортом: (псевдокод)
File olddb = oldDb.db; // get the back up file here from SD
int piadAppDBVersion = 2; // check for the current version of the database in paid app
if (olddb.getDatabaseVersion() == getPaidAppDBVersion()) { // made up functions
// allow import;
} else {
// Toast "Your databases are incompatible"
}
Итак, два вопроса: 1. Если приведенный выше код является подходящим решением для обеспечения совместимости, как это можно сделать? 2. Если это не стандартное решение моей проблемы, то что?
Примечание. Мой импорт состоит из простой копии файла: копирования резервной копии базы данных во внешнее хранилище и перезаписи базы данных во внутренней памяти.