ionic-team / ionic-storage

Ionic Storage module for Ionic apps
MIT License
438 stars 99 forks source link

indexeddb lost when updating app from cordova-android 9 to cordova-android 11 #263

Open vladansaracpv opened 2 years ago

vladansaracpv commented 2 years ago

Hi,

We have an app that's currently on app/play store and uses cordova-android 9. We created new version of the app with cordova-android 11 (to align with google requirements). When we do the update from store version to new version, all storage data is lost. Any idea what could be the problem?

We're using storage like this: IonicStorageModule.forRoot({ driverOrder: ['indexeddb', 'sqlite', 'websql'] }),

Dependencies:

"dependencies": { "@angular/common": "~7.2.2", "@angular/core": "~7.2.2", "@angular/forms": "~7.2.2", "@angular/http": "~7.2.2", "@angular/platform-browser": "~7.2.2", "@angular/platform-browser-dynamic": "~7.2.2", "@angular/router": "~7.2.2", "@ionic-native/android-permissions": "^5.13.0", "@ionic-native/app-version": "^5.13.0", "@ionic-native/camera": "^5.13.0", "@ionic-native/clipboard": "^5.14.0", "@ionic-native/contacts": "^5.14.0", "@ionic-native/core": "^5.27.0", "@ionic-native/deeplinks": "^5.26.0", "@ionic-native/device": "^5.14.0", "@ionic-native/diagnostic": "^5.13.0", "@ionic-native/document-viewer": "^5.13.0", "@ionic-native/file": "^5.13.0", "@ionic-native/file-opener": "^5.13.0", "@ionic-native/firebase": "5.10.0", "@ionic-native/firebase-analytics": "^5.34.0", "@ionic-native/http": "^5.18.0", "@ionic-native/in-app-browser": "^5.13.0", "@ionic-native/ionic-webview": "^5.13.0", "@ionic-native/keyboard": "^5.13.0", "@ionic-native/keychain-touch-id": "^5.22.0", "@ionic-native/network": "^5.10.0", "@ionic-native/open-native-settings": "^5.15.0", "@ionic-native/photo-viewer": "^5.15.0", "@ionic-native/social-sharing": "^5.31.1", "@ionic-native/splash-screen": "~5.0.0", "@ionic-native/sqlite": "^5.28.0", "@ionic-native/status-bar": "~5.0.0", "@ionic-native/toast": "5.10.0", "@ionic/angular": "^4.11.4", "@ionic/core": "^4.11.4", "@ionic/storage": "2.2.0", "@ngx-translate/core": "11.0.1", "@ngx-translate/http-loader": "4.0.0", "@types/marked": "^4.0.3", "@types/node-forge": "^0.10.10", "big-integer": "^1.6.48", "buffer": "^6.0.3", "canvas-confetti": "^1.4.0", "chart.js": "^2.7.2", "cordova-android": "11.0.0", "cordova-android-support-gradle-release": "^3.0.1", "cordova-clipboard": "^1.3.0", "cordova-custom-config": "^5.1.0", "cordova-ios": "^6.2.0", "cordova-open-native-settings": "^1.5.2", "cordova-plugin-add-swift-support": "^2.0.2", "cordova-plugin-android-permissions": "^1.0.2", "cordova-plugin-androidx": "3.0.0", "cordova-plugin-androidx-adapter": "^1.1.1", "cordova-plugin-app-version": "^0.1.9", "cordova-plugin-camera": "^4.1.0", "cordova-plugin-device": "^2.0.3", "cordova-plugin-document-viewer": "^0.9.13", "cordova-plugin-file-opener2": "^2.2.1", "cordova-plugin-inappbrowser": "^4.0.0", "cordova-plugin-ionic-keyboard": "file:cordova-plugin-ionic-keyboard", "cordova-plugin-ionic-webview": "^5.0.0", "cordova-plugin-network-information": "^2.0.2", "cordova-plugin-splashscreen": "^6.0.2", "cordova-plugin-sslcertificatechecker": "^6.0.0", "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-x-socialsharing": "6.0.4", "cordova-plugin-x-toast": "^2.7.2", "cordova-sqlite-storage": "~5.0.1", "cordova.plugins.diagnostic": "^5.0.2", "core-js": "~2.5.4", "d3": "3.5.5", "hammerjs": "^2.0.8", "html-to-image": "^1.9.0", "ionic": "^4.12.0", "ionic-plugin-deeplinks": "1.0.19", "ionicons": "^4.6.3", "marked": "^4.0.18", "moment": "2.24.0", "ng2-validation": "^4.2.0", "ngx-moment": "^3.4.0", "node-forge": "^0.10.0", "npm": "6.10.2", "replace": "^1.2.1", "rxjs": "6.5.2", "skwas-cordova-plugin-datetimepicker": "^2.1.2", "swissqrbill": "3.2.0", "tslib": "^2.0.1", "zone.js": "~0.8.29" },

marcelkipp commented 1 year ago

@vladansaracpv We are facing the same problem. Were you able to find a solution to it?

vladansaracpv commented 1 year ago

Hi @marcelkipp. What we had to do in the end was to create migration script that would migrate data from local storage/data to sqlitedb (during app initialization) before the storage is wiped out.