@@ -8,7 +8,8 @@ var log = internals.mod.log;
8
8
var tunnel = require ( 'tunnel-ssh' ) ,
9
9
Promise = require ( 'bluebird' ) ,
10
10
SeederInterface = require ( '../interface/seederInterface.js' ) ,
11
- MigratorInterface = require ( '../interface/migratorInterface.js' ) ;
11
+ MigratorInterface = require ( '../interface/migratorInterface.js' ) ,
12
+ resolve = require ( 'resolve' ) ;
12
13
13
14
var ShadowProto = {
14
15
@@ -44,6 +45,7 @@ exports.connect = function (config, intern, callback) {
44
45
log . verbose ( 'require:' , config . driver . require ) ;
45
46
driver = require ( config . driver . require ) ;
46
47
48
+ _connect ( ) ;
47
49
}
48
50
else {
49
51
@@ -58,37 +60,54 @@ exports.connect = function (config, intern, callback) {
58
60
break ;
59
61
}
60
62
61
- try {
63
+ req = 'db-migrate-' + config . driver ;
64
+ log . verbose ( 'require:' , req ) ;
62
65
63
- req = 'db-migrate-' + config . driver ;
64
- log . verbose ( 'require:' , req ) ;
66
+ resolve ( req , {
65
67
66
- try {
68
+ basedir : process . cwd ( )
69
+ } , function ( error , localModule ) {
67
70
68
- driver = require ( req ) ;
71
+ try {
72
+ if ( error ) {
73
+ try {
74
+
75
+ driver = require ( req ) ;
76
+ }
77
+ catch ( Exception ) {
78
+
79
+ driver = require ( '../../../' + req ) ;
80
+ }
81
+ }
82
+ else {
83
+ driver = require ( localModule ) ;
84
+ }
69
85
}
70
86
catch ( Exception ) {
71
87
72
- driver = require ( '../../../' + req ) ;
88
+ try {
89
+
90
+ //Fallback to internal drivers, while moving drivers to new repos
91
+ req = './' + config . driver ;
92
+ log . verbose ( 'require:' , req ) ;
93
+ driver = require ( req ) ;
94
+ }
95
+ catch ( exception ) {
96
+
97
+ return callback ( {
98
+ stack : 'No such driver found, please try to install it via ' +
99
+ 'npm install db-migrate-' + config . driver + ' or ' +
100
+ 'npm install -g db-migrate-' + config . driver
101
+ } ) ;
102
+ }
73
103
}
74
- }
75
- catch ( Exception ) {
76
104
77
- try {
105
+ _connect ( ) ;
106
+ } ) ;
107
+ }
78
108
79
- //Fallback to internal drivers, while moving drivers to new repos
80
- req = './' + config . driver ;
81
- log . verbose ( 'require:' , req ) ;
82
- driver = require ( req ) ;
83
- }
84
- catch ( Exception ) {
85
109
86
- return callback ( { stack : 'No such driver found, please try to install it via ' +
87
- 'npm install db-migrate-' + config . driver + ' or ' +
88
- 'npm install -g db-migrate-' + config . driver } ) ;
89
- }
90
- }
91
- }
110
+ function _connect ( ) {
92
111
93
112
log . verbose ( 'connecting' ) ;
94
113
@@ -136,4 +155,5 @@ exports.connect = function (config, intern, callback) {
136
155
else {
137
156
connect ( config ) ;
138
157
}
158
+ }
139
159
} ;
0 commit comments