@@ -9,7 +9,9 @@ var path = require('path');
99var log = require ( 'db-migrate-shared' ) . log ;
1010const Promise = require ( 'bluebird' ) ;
1111
12- exports . connect = function ( config , PassedClass ) {
12+ Promise . promisifyAll ( driver ) ;
13+
14+ exports . connect = async function ( config , PassedClass ) {
1315 var internals = { } ;
1416 var prefix = 'migration' ;
1517 if ( config . config ) {
@@ -18,13 +20,23 @@ exports.connect = function (config, PassedClass) {
1820 config = config . config ;
1921 }
2022
23+ const db2 = await driver . connectAsync ( config , internals ) ;
24+
2125 return Promise . fromCallback ( callback => {
2226 driver . connect ( config , internals , function ( err , db ) {
2327 if ( err ) {
2428 callback ( err ) ;
2529 return ;
2630 }
2731
32+ const realClose = db . close ;
33+ // close both lines with one disconnect action
34+ db . close = function ( cb ) {
35+ db2 . close ( function ( ) { } ) ;
36+ db . close = realClose ;
37+ db . close ( cb ) ;
38+ } ;
39+
2840 var dirPath = path . resolve (
2941 internals . argv [ 'migrations-dir' ] || 'migrations'
3042 ) ;
@@ -59,7 +71,8 @@ exports.connect = function (config, PassedClass) {
5971 dirPath ,
6072 internals . mode !== 'static' ,
6173 internals ,
62- prefix
74+ prefix ,
75+ { db2 }
6376 )
6477 ) ;
6578 } ) ;
@@ -100,6 +113,7 @@ exports.connect = function (config, PassedClass) {
100113 db ,
101114 oldClose ,
102115 prefix ,
116+ db2 ,
103117 cb
104118 ) ;
105119 } ;
@@ -115,7 +129,8 @@ exports.connect = function (config, PassedClass) {
115129 dirPath ,
116130 internals . mode !== 'static' ,
117131 internals ,
118- prefix
132+ prefix ,
133+ { db2 }
119134 )
120135 ) ;
121136 }
@@ -142,6 +157,7 @@ function migrationFiles (
142157 db ,
143158 close ,
144159 prefix ,
160+ db2 ,
145161 cb
146162) {
147163 var file ;
@@ -187,7 +203,8 @@ function migrationFiles (
187203 internals . argv [ 'migrations-dir' ] ,
188204 internals . mode !== 'static' ,
189205 internals ,
190- prefix
206+ prefix ,
207+ { db2 }
191208 )
192209 ) ;
193210
0 commit comments