2016-12-09 4 views
1

Я выпустил приложение Ionic в начале этого года для iOS и Android, которое использует cordova-sqlite-storage. В рамках подготовки к новому выпуску сегодня я обновил платформы Android и iOS cordova и обновил все плагины.Обновление cordova-plugin-sqlite - как загрузить мою существующую базу данных?

В моей существующей версии приложения мой звонок $cordovaSQLite.openDB не определяет местоположение. Это нормально для версии плагина, который я использую в процессе производства. Тем не менее, для более новых версий требуется указать местоположение для открытия БД.

Я понятия не имею, что я должен положить для местоположения при попытке открыть существующую БД из версии sqlite, где не было указано местоположение. Использование опции 'default' не работает, это просто создание новой базы данных на Android и iOS. Это неприемлемо, поскольку эта новая БД не имеет ни одной из хранимых данных пользователя.

Как я могу указать местоположение, которое всегда будет соответствовать местоположению из более старых версий плагина sqlite?

+0

ли вы когда-нибудь решить эту проблему? –

+0

@PhilMitchell Я отправлю код, который закончился для меня. Я думаю, что что-то не так с моей конфигурацией Android, потому что «по умолчанию» в конечном итоге работает. – pidgezero

ответ

0

Вот код, который в конечном итоге работает для меня:

if (window.cordova) { 
    if (ionic.Platform.isIOS()) { 
     db = $cordovaSQLite.openDB({name: "database.db", iosDatabaseLocation: 'Documents'}); 
    } 
    else { 
     db = $cordovaSQLite.openDB({name: "database.db", location: 'default'}); 
    }   
} 
else { 
    db = window.openDatabase("database.db", '1.0', 'auto', 1024 * 1024 * 100); 
} 
+0

Большое спасибо за публикацию этого. Похоже, документы dir работают для вас на iOS. Хотел бы я сказать то же самое :) –

+0

@PhilMitchell Нет проблем, документация также предлагает попробовать «по умолчанию» и «Библиотека», если вы еще этого не сделали. – pidgezero