From efe3cd67fcc425101270661b7dd6033c3aa12339 Mon Sep 17 00:00:00 2001 From: Daniel Gasienica Date: Wed, 28 Mar 2018 14:45:07 -0400 Subject: [PATCH] Allow attachment migration run on higher database version --- js/background.js | 2 +- js/modules/messages_data_migrator.js | 20 ++++++++++++++++---- js/modules/migrations/run_migrations.js | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/js/background.js b/js/background.js index 991414f0644..3516cb0e726 100644 --- a/js/background.js +++ b/js/background.js @@ -91,7 +91,7 @@ await MessageDataMigrator.processAll({ Backbone, databaseName: database.name, - databaseVersion: database.version, + minDatabaseVersion: database.version, upgradeMessageSchema, }); diff --git a/js/modules/messages_data_migrator.js b/js/modules/messages_data_migrator.js index e554d72087d..a331aac8033 100644 --- a/js/modules/messages_data_migrator.js +++ b/js/modules/messages_data_migrator.js @@ -77,7 +77,7 @@ exports.processNext = async ({ exports.processAll = async ({ Backbone, databaseName, - databaseVersion, + minDatabaseVersion, upgradeMessageSchema, } = {}) => { if (!isObject(Backbone)) { @@ -88,15 +88,27 @@ exports.processAll = async ({ throw new TypeError('"databaseName" must be a string'); } - if (!isNumber(databaseVersion)) { - throw new TypeError('"databaseVersion" must be a number'); + if (!isNumber(minDatabaseVersion)) { + throw new TypeError('"minDatabaseVersion" must be a number'); } if (!isFunction(upgradeMessageSchema)) { throw new TypeError('"upgradeMessageSchema" is required'); } - const connection = await database.open(databaseName, databaseVersion); + const connection = await database.open(databaseName); + const databaseVersion = connection.version; + const isValidDatabaseVersion = databaseVersion >= minDatabaseVersion; + console.log('Database status', { + databaseVersion, + isValidDatabaseVersion, + minDatabaseVersion, + }); + if (!isValidDatabaseVersion) { + throw new Error(`Expected database version (${databaseVersion})` + + ` to be at least ${minDatabaseVersion}`); + } + const isComplete = await settings.isAttachmentMigrationComplete(connection); console.log('Attachment migration status:', isComplete ? 'complete' : 'incomplete'); if (isComplete) { diff --git a/js/modules/migrations/run_migrations.js b/js/modules/migrations/run_migrations.js index b66057c193d..ce3e3cee181 100644 --- a/js/modules/migrations/run_migrations.js +++ b/js/modules/migrations/run_migrations.js @@ -32,7 +32,7 @@ exports.runMigrations = async ({ Backbone, database } = {}) => { const databaseVersion = await db.getVersion(database.id); const isAlreadyUpgraded = databaseVersion >= lastMigrationVersion; - console.log('Database state', { + console.log('Database status', { firstMigrationVersion, lastMigrationVersion, databaseVersion,