This gist provides functions to import and export data from an IndexedDB database as JSON. It's based on Justin Emery's indexeddb-export-import
package, but applies some adjustments that reflect better on the current browser landscape (i.e. better developer ergonomics but no support for Internet Explorer).
For each of the provided functionalities, you need a connected IDBDatabase
instance.
import { idb } from 'some-database'
import { exportToJson } from 'idb-backup-and-restore.js'
exportToJson(idb)
.then(result => {
console.log('Exported JSON string:', result)
})
.catch(error => {
console.error('Something went wrong during export:', error)
})
import { idb } from 'some-database'
import { serializedData } from 'some-serialized-data'
import { importFromJson } from 'idb-backup-and-restore.js'
importFromJson(idb, serializedData)
.then(() => {
console.log('Successfully imported data')
})
.catch(error => {
console.error('Something went wrong during import:', error)
})
Depending on your use case, it can be reasonable to clear a database before importing serialized data:
import { idb } from 'some-database'
import { serializedData } from 'some-serialized-data'
import { importFromJson, clearDatabase } from 'idb-backup-and-restore.js'
clearDatabase(idb)
.then(() => importFromJson(idb, serializedData))
.then(() => {
console.log('Successfully cleared database and imported data')
})
.catch(error => {
console.error('Could not clear & import database:', error)
})
Great ! Thank you so much for these helpful functions. I just can't figure out how to use import statement in the browser. How do I run the functions in chrome console for example ?