- From: Aleksey Kulikov <notifications@github.com>
- Date: Tue, 16 Feb 2016 09:20:36 -0800
- To: w3c/IndexedDB <IndexedDB@noreply.github.com>
Received on Tuesday, 16 February 2016 17:21:47 UTC
I think this feature can be implemented in user land. IndexedDB API is low level enough to cover this case. For example I built [idb-schema](https://github.com/treojs/idb-schema) which can be combined with [idb-factory](https://github.com/treojs/idb-factory) for similar results:
```js
import Schema from 'idb-schema'
import { open } from 'idb-factory'
const schema = new Schema()
.version(1)
.addStore('books', { key: 'isbn' })
.addIndex('byTitle', 'title', { unique: true })
.addIndex('byAuthor', 'author')
.version(2)
.getStore('books')
.addIndex('byDate', ['year', 'month'])
.version(3)
.addStore('magazines')
.addIndex('byPublisher', 'publisher')
.addIndex('byFrequency', 'frequency')
open('mydb1', schema.version(), schema.callback).then((db) => {})
```
Handling of `onversionchange` should be done in app. For example having 2 tabs running on top of 2 different db versions can be an issue.
---
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/issues/64#issuecomment-184783174
Received on Tuesday, 16 February 2016 17:21:47 UTC