diff --git a/js/background.js b/js/background.js index 991414f06..3516cb0e7 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 e554d7208..a331aac80 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 b66057c19..ce3e3cee1 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,