From d38ebc85400050c492ad275d7cd8f441677c9476 Mon Sep 17 00:00:00 2001 From: Trevor Morris Date: Mon, 21 Nov 2016 05:22:50 -0500 Subject: [PATCH] add db:migrate:status (#385) --- lib/tasks/db.js | 29 +++++++++++++++++++++++++++++ test/db/migrate/status.test.js | 26 ++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 test/db/migrate/status.test.js diff --git a/lib/tasks/db.js b/lib/tasks/db.js index 38720e9c..d0eb1113 100644 --- a/lib/tasks/db.js +++ b/lib/tasks/db.js @@ -165,6 +165,35 @@ module.exports = { } }, + 'db:migrate:status': { + descriptions: { + 'short': 'List the status of all migrations' + }, + + task: function () { + return getMigrator('migration').then(function (migrator) { + return ensureCurrentMetaSchema(migrator).then(function () { + return migrator.executed(); + }).then(function (migrations) { + _.forEach(migrations, function (migration) { + console.log('up ', migration.file); + }); + }).then(function () { + return migrator.pending(); + }).then(function (migrations) { + _.forEach(migrations, function (migration) { + console.log('down', migration.file); + }); + }).then(function () { + process.exit(0); + }).catch(function (err) { + console.error(err); + process.exit(1); + }); + }); + } + }, + 'db:migrate:undo': { descriptions: { 'short': 'Revert the last migration run.' diff --git a/test/db/migrate/status.test.js b/test/db/migrate/status.test.js new file mode 100644 index 00000000..5cc1d697 --- /dev/null +++ b/test/db/migrate/status.test.js @@ -0,0 +1,26 @@ + 'use strict'; + +var Support = require(__dirname + '/../../support'); +var helpers = require(__dirname + '/../../support/helpers'); +var gulp = require('gulp'); + +([ + 'db:migrate:status' +]).forEach(function (flag) { + describe(Support.getTestDialectTeaser(flag), function () { + it('is correctly reports a down and an up migration', function (done) { + gulp + .src(Support.resolveSupportPath('tmp')) + .pipe(helpers.clearDirectory()) + .pipe(helpers.runCli('init')) + .pipe(helpers.copyMigration('createPerson.js')) + .pipe(helpers.overwriteFile(JSON.stringify(helpers.getTestConfig()), 'config/config.json')) + .pipe(helpers.runCli('db:migrate', { pipeStdout: false })) + .pipe(helpers.copyMigration('renamePersonToUser.js')) + .pipe(helpers.runCli(flag, { pipeStdout: true })) + .pipe(helpers.ensureContent('up 20111117063700-createPerson.js')) + .pipe(helpers.ensureContent('down 20111205064000-renamePersonToUser.js')) + .pipe(helpers.teardown(done)); + }); + }); +});