diff --git a/keyserver/src/database/migrations.js b/keyserver/src/database/migrations.js --- a/keyserver/src/database/migrations.js +++ b/keyserver/src/database/migrations.js @@ -35,22 +35,31 @@ for (const { version: idx, migrationPromise: migration, + migrationType, } of migrations.values()) { if (idx <= dbVersion) { continue; } try { - await startTransaction(); - await migration(); - await updateDBVersion(idx); - await commitTransaction(); + if (migrationType === 'wrap_in_transaction_and_block_requests') { + await startTransaction(); + await migration(); + await updateDBVersion(idx); + await commitTransaction(); + } else { + await migration(); + await updateDBVersion(idx); + } console.log(`(node:${process.pid}) migration ${idx} succeeded.`); } catch (e) { const transactionExceptionMessage = String(getMessageForException(e)); console.error(`(node:${process.pid}) migration ${idx} failed.`); console.error(transactionExceptionMessage); - await rollbackTransaction(); + + if (migrationType === 'wrap_in_transaction_and_block_requests') { + await rollbackTransaction(); + } return false; } }