@@ -4,48 +4,74 @@ $.verbose = false;
4
4
const log = console . log ;
5
5
const error = chalk . bold . red ;
6
6
7
+ async function init ( ) {
8
+ log ( ) ;
9
+ log ( chalk . cyan ( "Welcome to dms-psql-post-data" ) ) ;
10
+ log ( ) ;
11
+ }
7
12
8
- log ( ) ;
9
- log ( chalk . green ( "Welcome to dms-psql-post-data" ) ) ;
10
- log ( ) ;
13
+ async function configure ( ) {
14
+ log ( chalk . yellow ( "Reading your DB info..." ) ) ;
11
15
12
- log ( chalk . yellow ( 'Input your Source DB info' ) ) ;
16
+ const dbInfo = await fs . readJson ( "./info.json" ) ;
17
+ const { srcDBHost, srcDBUser, srcDBName, srcDBPass } = dbInfo ;
18
+ const { tarDBHost, tarDBUser, tarDBName, tarDBPass } = dbInfo ;
13
19
14
- let srcDBHost = await question ( '[1/8] Source DB Host: ' ) ;
15
- let srcDBUser = await question ( '[2/8] Source DB User: ' ) ;
16
- let srcDBName = await question ( '[3/8] Source DB Name: ' ) ;
17
- let srcDBPass = await question ( '[4/8] Source DB Password: ' ) ;
20
+ log ( chalk . green ( "Done" ) ) ;
21
+ log ( ) ;
18
22
19
- let tarDBHost = await question ( '[5/8] Target DB Host: ' ) ;
20
- let tarDBUser = await question ( '[6/8] Target DB User: ' ) ;
21
- let tarDBName = await question ( '[7/8] Target DB Name: ' ) ;
22
- let tarDBPass = await question ( '[8/8] Target DB Password: ' ) ;
23
+ log ( chalk . cyan ( "Input the number of job workers" ) ) ;
24
+ log (
25
+ chalk . cyan (
26
+ "NOTE: Increasing the number makes it faster, however it may cause DB locks."
27
+ )
28
+ ) ;
23
29
24
- log ( 'Input the number of job workers' ) ;
25
- log ( chalk . yellow ( 'NOTE: Increasing the number makes it faster, however it may cause DB locks.' ) ) ;
30
+ let restoreJobWorkerNum = await question ( chalk . cyan ( "Default value[1]: " ) ) ;
31
+ restoreJobWorkerNum = restoreJobWorkerNum ? restoreJobWorkerNum : 1 ;
26
32
27
- let restoreJobWorkerNum = await question ( 'Default value[1]: ' ) ;
28
- restoreJobWorkerNum = restoreJobWorkerNum ? restoreJobWorkerNum : 1 ;
33
+ return {
34
+ ...dbInfo ,
35
+ restoreJobWorkerNum,
36
+ } ;
37
+ }
29
38
30
- process . env . PGPASSWORD = srcDBPass
31
- log ( chalk . yellow ( 'Dumping Source DB Post-data(Index, Constraint)...' ) ) ;
39
+ async function dumpPostData ( { srcDBHost, srcDBUser, srcDBName } ) {
40
+ process . env . PGPASSWORD = srcDBPass ;
41
+ log ( chalk . yellow ( "Dumping Source DB Post-data(Index, Constraint)..." ) ) ;
32
42
33
- try {
34
- await $ `pg_dump -h ${ srcDBHost } -U ${ srcDBUser } -Fc ${ srcDBName } --section=post-data > postdata.dump` ;
35
- } catch ( p ) {
36
- log ( error ( 'Exception detected: Is your Source DB information correct?' ) ) ;
37
- log ( error ( `Error: ${ p . stderr } ` ) ) ;
43
+ try {
44
+ await $ `pg_dump -h ${ srcDBHost } -U ${ srcDBUser } -Fc ${ srcDBName } --section=post-data > postdata.dump` ;
45
+ } catch ( p ) {
46
+ log ( error ( "Exception detected: Is your Source DB information correct?" ) ) ;
47
+ log ( error ( `Error: ${ p . stderr } ` ) ) ;
48
+ }
38
49
}
39
50
40
- process . env . PGPASSWORD = tarDBPass
41
- log ( chalk . yellow ( 'Restoring Post-data on Target DB...' ) ) ;
51
+ async function restorePostData ( {
52
+ tarDBHost,
53
+ tarDBUser,
54
+ tarDBName,
55
+ tarDBPass,
56
+ restoreJobWorkerNum,
57
+ } ) {
58
+ process . env . PGPASSWORD = tarDBPass ;
59
+ log ( chalk . yellow ( "Restoring Post-data on Target DB..." ) ) ;
42
60
43
- try {
44
- await $ `pg_restore -h ${ tarDBHost } -U ${ tarDBUser } -d ${ tarDBName } -j ${ restoreJobWorkerNum } -v postdata.dump` ;
45
- } catch ( p ) {
46
- log ( error ( 'Exception detected: Is your Target DB information correct?' ) ) ;
47
- log ( error ( `Error: ${ p . stderr } ` ) ) ;
61
+ try {
62
+ await $ `pg_restore -h ${ tarDBHost } -U ${ tarDBUser } -d ${ tarDBName } -j ${ restoreJobWorkerNum } -v postdata.dump` ;
63
+ } catch ( p ) {
64
+ log ( error ( "Exception detected: Is your Target DB information correct?" ) ) ;
65
+ log ( error ( `Error: ${ p . stderr } ` ) ) ;
66
+ }
48
67
}
49
68
69
+ await init ( ) ;
70
+
71
+ const config = await configure ( ) ;
72
+
73
+ await dumpPostData ( config ) ;
74
+ await restorePostData ( config ) ;
75
+
50
76
log ( ) ;
51
- log ( chalk . yellow ( ' Finished' ) )
77
+ log ( chalk . yellow ( " Finished" ) ) ;
0 commit comments