@@ -62,7 +62,8 @@ function dbmigrate(plugins, isModule, options, callback) {
62
62
63
63
this . internals = {
64
64
65
- onComplete : onComplete
65
+ onComplete : onComplete ,
66
+ migrationProtocol : 1
66
67
} ;
67
68
var internals = this . internals ;
68
69
@@ -295,6 +296,14 @@ dbmigrate.prototype = {
295
296
return log . silence ( isSilent ) ;
296
297
} ,
297
298
299
+ /**
300
+ * Transition migrations to the latest defined protocol.
301
+ */
302
+ transition : function ( ) {
303
+
304
+ transition ( this . internals ) ;
305
+ } ,
306
+
298
307
/**
299
308
* Creates a correctly formatted migration
300
309
*/
@@ -474,7 +483,7 @@ function setDefaultArgv(internals, isModule) {
474
483
'ignore-completed-migrations' : false
475
484
} )
476
485
. usage (
477
- 'Usage: db-migrate [up|down|reset|create|db|seed] [[dbname/]migrationName|all] [options]'
486
+ 'Usage: db-migrate [up|down|reset|create|db|seed|transition ] [[dbname/]migrationName|all] [options]'
478
487
)
479
488
480
489
. describe ( 'env' ,
@@ -780,61 +789,75 @@ function _assert(err, callback) {
780
789
return true ;
781
790
}
782
791
792
+ function migrationHook ( internals ) {
793
+
794
+ var Migration = require ( './lib/migration.js' ) ;
795
+ return Migration . registerHook ( internals . plugins , internals ) ;
796
+ }
797
+
783
798
function executeUp ( internals , config , callback ) {
784
799
785
- var Migrator = require ( './lib/migrator.js' ) ;
786
- var index = require ( './connect' ) ;
800
+ migrationHook ( internals )
801
+ . then ( function ( ) {
787
802
788
- if ( ! internals . argv . count ) {
789
- internals . argv . count = Number . MAX_VALUE ;
790
- }
791
- index . connect ( {
792
- config : config . getCurrent ( ) . settings ,
793
- internals : internals
794
- } , Migrator , function ( err , migrator ) {
795
- assert . ifError ( err ) ;
803
+ var Migrator = require ( './lib/migrator.js' ) ;
804
+ var index = require ( './connect' ) ;
805
+
806
+ if ( ! internals . argv . count ) {
807
+ internals . argv . count = Number . MAX_VALUE ;
808
+ }
809
+ index . connect ( {
810
+ config : config . getCurrent ( ) . settings ,
811
+ internals : internals
812
+ } , Migrator , function ( err , migrator ) {
813
+ assert . ifError ( err ) ;
796
814
797
- if ( internals . locTitle )
815
+ if ( internals . locTitle )
798
816
migrator . migrationsDir = path . resolve ( internals . argv [ 'migrations-dir' ] ,
799
- internals . locTitle ) ;
800
- else
817
+ internals . locTitle ) ;
818
+ else
801
819
migrator . migrationsDir = path . resolve ( internals . argv [ 'migrations-dir' ] ) ;
802
820
803
- internals . migrationsDir = migrator . migrationsDir ;
821
+ internals . migrationsDir = migrator . migrationsDir ;
804
822
805
- migrator . driver . createMigrationsTable ( function ( err ) {
806
- assert . ifError ( err ) ;
807
- log . verbose ( 'migration table created' ) ;
823
+ migrator . driver . createMigrationsTable ( function ( err ) {
824
+ assert . ifError ( err ) ;
825
+ log . verbose ( 'migration table created' ) ;
808
826
809
- migrator . up ( internals . argv , internals . onComplete . bind ( this ,
810
- migrator , internals , callback ) ) ;
811
- } ) ;
827
+ migrator . up ( internals . argv , internals . onComplete . bind ( this ,
828
+ migrator , internals , callback ) ) ;
829
+ } ) ;
830
+ } ) ;
812
831
} ) ;
813
832
}
814
833
815
834
function executeDown ( internals , config , callback ) {
816
835
817
- var Migrator = require ( './lib/migrator.js' ) ;
818
- var index = require ( './connect' ) ;
819
-
820
- if ( ! internals . argv . count ) {
821
- log . info ( 'Defaulting to running 1 down migration.' ) ;
822
- internals . argv . count = 1 ;
823
- }
836
+ migrationHook ( internals )
837
+ . then ( function ( ) {
824
838
825
- index . connect ( {
826
- config : config . getCurrent ( ) . settings ,
827
- internals : internals
828
- } , Migrator , function ( err , migrator ) {
829
- assert . ifError ( err ) ;
839
+ var Migrator = require ( './lib/migrator.js' ) ;
840
+ var index = require ( './connect' ) ;
830
841
831
- migrator . migrationsDir = path . resolve ( internals . argv [ 'migrations-dir' ] ) ;
842
+ if ( ! internals . argv . count ) {
843
+ log . info ( 'Defaulting to running 1 down migration.' ) ;
844
+ internals . argv . count = 1 ;
845
+ }
832
846
833
- migrator . driver . createMigrationsTable ( function ( err ) {
847
+ index . connect ( {
848
+ config : config . getCurrent ( ) . settings ,
849
+ internals : internals
850
+ } , Migrator , function ( err , migrator ) {
834
851
assert . ifError ( err ) ;
835
- migrator . down ( internals . argv , internals . onComplete . bind ( this ,
836
- migrator , internals , callback ) ) ;
837
- } ) ;
852
+
853
+ migrator . migrationsDir = path . resolve ( internals . argv [ 'migrations-dir' ] ) ;
854
+
855
+ migrator . driver . createMigrationsTable ( function ( err ) {
856
+ assert . ifError ( err ) ;
857
+ migrator . down ( internals . argv , internals . onComplete . bind ( this ,
858
+ migrator , internals , callback ) ) ;
859
+ } ) ;
860
+ } ) ;
838
861
} ) ;
839
862
}
840
863
@@ -994,13 +1017,22 @@ function onComplete(migrator, internals, callback, originalErr) {
994
1017
} ) ;
995
1018
}
996
1019
1020
+ function transition ( internals ) {
1021
+
1022
+ require ( './lib/transitions/transitioner.js' ) ( internals ) ;
1023
+ }
1024
+
997
1025
function run ( internals , config ) {
998
1026
var action = internals . argv . _ . shift ( ) ,
999
1027
folder = action . split ( ':' ) ;
1000
1028
1001
1029
action = folder [ 0 ] ;
1002
1030
1003
1031
switch ( action ) {
1032
+ case 'transition' :
1033
+
1034
+ transition ( internals ) ;
1035
+ break ;
1004
1036
case 'create' :
1005
1037
1006
1038
if ( folder [ 1 ] ) {
0 commit comments