From abb8c1df74cffdc88548ca874f5ae8454bde3e09 Mon Sep 17 00:00:00 2001 From: Naz Date: Wed, 17 Feb 2021 16:17:07 +1300 Subject: [PATCH] Updated unsplash setting migration to be idempotent refs https://github.com/TryGhost/Ghost/issues/10318 - Previous version of migration was not following the idempotence rule of migrations --- .../versions/4.0/20-refactor-unsplash-setting.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js b/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js index 91e180032f..17fa2f30cc 100644 --- a/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js +++ b/core/server/data/migrations/versions/4.0/20-refactor-unsplash-setting.js @@ -2,6 +2,8 @@ const logging = require('../../../../../shared/logging'); const {createIrreversibleMigration} = require('../../utils'); module.exports = createIrreversibleMigration(async (knex) => { + logging.info('Updating unsplash setting value'); + const unsplashSetting = await knex('settings') .select('value') .where({ @@ -10,6 +12,12 @@ module.exports = createIrreversibleMigration(async (knex) => { .first(); let isActive; + + if (unsplashSetting && (unsplashSetting.value === 'true' || unsplashSetting.value === 'false')) { + logging.warn(`Skipping update of unsplash value. Current value is already boolean: ${unsplashSetting.value}`); + return; + } + try { const value = JSON.parse(unsplashSetting.value); isActive = typeof value.isActive === 'boolean' ? value.isActive : true;