Skip to content

Migrating existing DB to Dexie

David Fahlander edited this page Jun 13, 2016 · 52 revisions

Dexie can open any indexedDB database, no matter if you've created it via raw indexedDB or another indexedDB wrapper. It's very simple:

How to migrate

  1. Publish this HTML page somewhere in the same origin as your app resides (such as http://locahost:8080/dump-databases.html).
  2. Use Chrome or Opera to navigate to your existing app (to ensure it will create the database your way). Then just navigate to the dump-database.html page and copy the generated code from the output and your with your app.

That's all. After that, you may even use Dexie and your own raw indexedDB code / other wrapper in parallell if you like.

NOTE: Dexie will use the version number divided by 10. Nothing to be afraid of. It just is like that. Here's an explanation.

What you will see

A log window will display the Dexie-code to cut/paste into your app to get up running with Dexie and your existing database schema. It will show something like the following:

Dumping Databases
=================
var db = new Dexie('MyDB');
db.version(1).stores({
    friends: '++id,name,shoeSize'
});

var db = new Dexie('someDB');
db.version(3).stores({
    someTable: '++id,someIndex'
});

var db = new Dexie('todos-dexie');
db.version(1).stores({
    todo: '_id'
});

Finished dumping databases
==========================

Un-migrate

You can always go back to not using Dexie if you later on decides so, or you could run parts of the code through Dexie and parts through the raw indexedDB API.

If un-migrating, just be aware of the version multiplied by 10 thingie. If you're on version(2) in Dexie, your raw database would be on version 20. That shouldn't be a problem when un-migrating as long as you're aware of it.

Happy migration!

Clone this wiki locally