From 2a20f1a9b5822588ab176db610c21638b2eb1e46 Mon Sep 17 00:00:00 2001 From: Mike Barkmin Date: Sun, 7 Jun 2020 22:35:11 +0200 Subject: [PATCH] fix: migration to breast --- server/src/database.js | 1 + server/src/migrations/index.js | 12 ++++++++++-- server/src/migrations/m20200607.js | 15 ++++++++++----- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/server/src/database.js b/server/src/database.js index 76449a81..bae7c9da 100644 --- a/server/src/database.js +++ b/server/src/database.js @@ -18,6 +18,7 @@ function connectDB() { ); setTimeout(connectDB, 5000); } else { + console.info('==== MIGRATIONS ===='); migrations.up(); } } diff --git a/server/src/migrations/index.js b/server/src/migrations/index.js index bbfd3ada..d3ef3cf0 100644 --- a/server/src/migrations/index.js +++ b/server/src/migrations/index.js @@ -1,11 +1,19 @@ import m202006607 from './m20200607'; +const migrations = [m202006607]; + const up = () => { - m202006607.up(); + migrations.forEach((m) => { + console.info(`UP: ${m.title}`); + m.up(); + }); }; const down = () => { - m202006607.down(); + migrations.forEach((m) => { + console.info(`DOWN: ${m.title}`); + m.down(); + }); }; export default { diff --git a/server/src/migrations/m20200607.js b/server/src/migrations/m20200607.js index 31ef256a..a4478db8 100644 --- a/server/src/migrations/m20200607.js +++ b/server/src/migrations/m20200607.js @@ -1,14 +1,17 @@ import modules from '../modules'; +const title = 'convert breastLeft to breast'; + function up() { modules.nursing.Model.find({ breastLeft: { $exists: true } }).then((docs) => { + console.info(`> ${docs.length} affected`); docs.forEach(function (doc) { - if (doc.breastLeft === true) { + const breastLeft = doc.get('breastLeft', { strict: false }); + if (breastLeft === true) { doc.breast = 'left'; - } else if (doc.breastLeft === false) { + } else if (breastLeft === false) { doc.breast = 'right'; } - delete doc.breastLeft; doc.save(); }); }); @@ -16,13 +19,14 @@ function up() { function down() { modules.nursing.Model.find({ breast: { $exists: false } }).then((docs) => { + console.info(`> ${docs.length} affected`); docs.forEach(function (doc) { - if (doc.breast === 'left') { + const breast = doc.get('breast', { strict: false }); + if (breast === 'left') { doc.breastLeft = true; } else { doc.breastLeft = false; } - delete doc.breast; doc.save(); }); }); @@ -31,4 +35,5 @@ function down() { export default { up, down, + title, };