Skip to content

Instantly share code, notes, and snippets.

@dfahlander
Last active January 6, 2023 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dfahlander/6c1980a0b934f3d16c97c0835fa6113b to your computer and use it in GitHub Desktop.
Save dfahlander/6c1980a0b934f3d16c97c0835fa6113b to your computer and use it in GitHub Desktop.
Export-IndexedDB-using-devtools-console
// On any web page that stores things in IndexedDB,
// open devtools and in the console, write the following:
script1 = document.createElement('script');
script1.src = 'https://unpkg.com/dexie@3.2.2';
document.body.appendChild(script1);
script2 = document.createElement('script');
script2.src = 'https://unpkg.com/dexie-export-import@1.0.3';
document.body.appendChild(script2);
// In devtools "applications" tab navigate to IndexedDB and find
// the name of the databases to export. Then write:
theDBName = 'the name of the database you want to export';
// Export the database into a Blob:
theDB = new Dexie(theDBName);
let {verno, tables} = await theDB.open();
theDB.close();
theDB = new Dexie(theDBName);
theDB.version(verno).stores(tables.reduce((p,c) => {p[c.name] = c.schema.primKey.keyPath || ""; return p;}, {}));
theBlob = await theDB.export();
@frumbert
Copy link

frumbert commented Jan 6, 2023

Try using dynamic imports. Just modify the db name at the start.

        const theDBName = 'YourDatabase';
        (async () => {
            await import('https://unpkg.com/dexie@3.2.2');
            await import('https://unpkg.com/dexie-export-import@1.0.3');
            await import('https://unpkg.com/downloadjs');
            let theDB = new Dexie(theDBName);
            let {verno, tables} = await theDB.open();
            theDB.close();
            theDB = new Dexie(theDBName);
            theDB.version(verno).stores(tables.reduce((p,c) => {p[c.name] = c.schema.primKey.keyPath || ""; return p;}, {}));
            theBlob = await theDB.export();
            download(theBlob, `${theDBName}.json`, "application/json")
        })();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment