Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. function check_and_fix_IOS_10_3_upgrade_issue () {
  2. return (somehowCheckIfWeNeedToDoThis) ?
  3. recreateDatabase() : Promise.resolve();
  4. }
  5.  
  6. function recreateDatabase () {
  7. copyDatabase("dbName", "dbName_tmp").then(()=>{
  8. return Dexie.delete("dbName");
  9. }).then(()=>{
  10. return copyDatabase("dbName_tmp", "dbName");
  11. }).then(()=>{
  12. return Dexie.delete("dbName_tmp");
  13. }).catch(err => {
  14. console.error (err);
  15. })
  16. }
  17.  
  18. function copyDatabase(fromDbName, toDbName) {
  19. return new Dexie(fromDbName).open().then(db => {
  20. let schema = db.tables.reduce((schema, table) => {
  21. schema[table.name] = [table.schema.primKey.src]
  22. .concat(table.schema.indexes.map(idx => idx.src))
  23. .join(',');
  24. }, {});
  25.  
  26. let dbCopy = new Dexie(toDbName);
  27. dbCopy.version(db.verno).stores(schema);
  28.  
  29. return dbCopy.open().then(()=>{
  30. // dbCopy is now successfully created with same version and schema as source db.
  31. // Now also copy the data
  32. return Promise.all(
  33. db.tables.map(table =>
  34. table.toArray().then(rows => dbCopy.table(table.name).bulkAdd(rows))));
  35. });
  36. })
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement