forked from aaronabramov/node-sql-migrations
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
70 lines (61 loc) · 2.17 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
var MigrationProvider = require('./migration-provider');
var createMigrationCommand = require('./commands/create-migration-command');
var runMigrationsCommand = require('./commands/run-migrations-command');
var rollbackMigrationCommand = require('./commands/rollback-migration-command');
var LOGGER = console;
function migrate(config, adapter) {
var migrationProvider = MigrationProvider(config);
return runMigrationsCommand(migrationProvider, adapter, config.minMigrationTime, LOGGER).then(function () {
return adapter.dispose();
}, function (error) {
function rethrowOriginalError() {
throw error;
}
return adapter.dispose().then(rethrowOriginalError, rethrowOriginalError);
});
}
function rollback(config, adapter) {
var migrationProvider = MigrationProvider(config);
return rollbackMigrationCommand(migrationProvider, adapter, LOGGER).then(function () {
return adapter.dispose();
}, function (error) {
function rethrowOriginalError() {
throw error;
}
return adapter.dispose().then(rethrowOriginalError, rethrowOriginalError);
});
}
module.exports = {
setLogger: function (logger) {
LOGGER = logger;
},
migrate: migrate,
rollback: rollback,
run: function (config) {
config.adapter = config.adapter || 'pg';
var Adapter = require('./adapters/' + config.adapter);
var adapter = Adapter(config, LOGGER);
var args = process.argv.slice(2);
switch (args[0]) {
case 'create':
createMigrationCommand(config, LOGGER, args[1]);
break;
case 'migrate':
migrate(config, adapter).then(onCliSuccess, onCliError);
break;
case 'rollback':
rollback(config, adapter).then(onCliSuccess, onCliError);
break;
default:
LOGGER.log('exit');
}
function onCliSuccess() {
LOGGER.log('done');
process.exit();
}
function onCliError(error) {
LOGGER.error('ERROR:', error);
process.exit(1);
}
}
};