East (node.js database migration tool) which provides migration helper to log progress.
npm install east-migration-progress-indicator-helper
Add this plugin to the plugins
section to .eastrc
e.g.:
{
"plugins": ["east-migration-progress-indicator-helper"]
}
After that createIndicator
can be used in migrations e.g.:
exports.migrate = function(client, done) {
const indicator = client.createIndicator({total: 150});
indicator.tick(5);
setTimeout(() => {
indicator.tick(45);
}, 100);
setTimeout(() => {
indicator.tick(50);
}, 100);
setTimeout(() => {
indicator.tick(50);
}, 500);
setTimeout(done, 1000);
};
indicator will be displayed as progress bar when stdout is tty:
Target migrations:
2_doSomething
Migrate "2_doSomething"
[==============================] 150 / 150
Migration done
in case of non-tty stdout (file, etc) it will periodically log progress:
Target migrations:
2_doSomething
Migrate "2_doSomething"
Progress: 5 / 150
Progress: 50 / 150
Progress: 100 / 150
Progress: 150 / 150
Migration done