Close database connection via Backbone IDB adapter
This commit is contained in:
parent
f50e9ae364
commit
5bea894abd
1 changed files with 4 additions and 20 deletions
|
@ -7,25 +7,8 @@ const isString = require('lodash/isString');
|
||||||
const { deferredToPromise } = require('../deferred_to_promise');
|
const { deferredToPromise } = require('../deferred_to_promise');
|
||||||
|
|
||||||
|
|
||||||
const closeDatabase = name =>
|
const closeDatabase = ({ Backbone } = {}) =>
|
||||||
new Promise((resolve, reject) => {
|
deferredToPromise(Backbone.sync('closeall'))
|
||||||
const request = window.indexedDB.open(name);
|
|
||||||
request.onblocked = () => {
|
|
||||||
reject(new Error(`Database '${name}' blocked`));
|
|
||||||
};
|
|
||||||
request.onupgradeneeded = (event) => {
|
|
||||||
reject(new Error('Unexpected database upgraded needed:' +
|
|
||||||
` oldVersion: ${event.oldVersion}, newVersion: ${event.newVersion}`));
|
|
||||||
};
|
|
||||||
request.onerror = (event) => {
|
|
||||||
reject(event.target.error);
|
|
||||||
};
|
|
||||||
request.onsuccess = (event) => {
|
|
||||||
const connection = event.target.result;
|
|
||||||
connection.close();
|
|
||||||
resolve();
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
exports.runMigrations = async ({ Backbone, database } = {}) => {
|
exports.runMigrations = async ({ Backbone, database } = {}) => {
|
||||||
if (!isObject(Backbone) || !isObject(Backbone.Collection) ||
|
if (!isObject(Backbone) || !isObject(Backbone.Collection) ||
|
||||||
|
@ -44,5 +27,6 @@ exports.runMigrations = async ({ Backbone, database } = {}) => {
|
||||||
}))();
|
}))();
|
||||||
|
|
||||||
await deferredToPromise(migrationCollection.fetch({ limit: 1 }));
|
await deferredToPromise(migrationCollection.fetch({ limit: 1 }));
|
||||||
await closeDatabase(database.id);
|
console.log('Close database connection');
|
||||||
|
await closeDatabase({ Backbone });
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue