forked from topcoder-platform/informix-postgres-migrator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
executable file
·57 lines (55 loc) · 1.38 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
global.Promise = require('bluebird');
const yargs = require('yargs');
const logger = require('./src/common/logger');
const migrateSchema = require('./src/migrate-schema');
const migrateData = require('./src/migrate-data');
const { argv } = yargs
.example('$0 -s', 'migrate schema only')
.example('$0 -d -t=<database1> -t=<database2> -v', 'migrate data in database1&database2')
.example('$0 -a', 'migrate all data&schema')
.option('s', {
boolean: true,
description: 'migrate schema',
alias: 'migrate-schema',
})
.option('d', {
boolean: true,
description: 'migrate data',
alias: 'migrate-data',
})
.option('a', {
boolean: true,
description: 'migrate schema&data',
alias: 'migrate-all',
})
.option('t', {
array: true,
description: 'target database to migrate',
alias: 'target',
})
.check(arg => arg.s || arg.d || arg.a)
.help('h')
.alias('h', 'help');
process
.on('unhandledRejection', (reason) => {
logger.error('Unhandled Rejection at Promise');
logger.error(reason);
})
.on('uncaughtException', (err) => {
logger.logFullError(err);
process.exit(1);
});
(async () => {
try {
if (argv.s || argv.a) {
// migrate schema
await migrateSchema(argv.t);
}
if (argv.d || argv.a) {
// migrate data
await migrateData(argv.t);
}
} catch (e) {
logger.logFullError(e);
}
})();