@@ -9,7 +9,7 @@ mod mysql {
9
9
use predicates:: str:: contains;
10
10
use refinery:: {
11
11
config:: { migrate_from_config, Config , ConfigDbType } ,
12
- Error , Migrate , Migration ,
12
+ Error , Migrate , Migration , Target ,
13
13
} ;
14
14
use refinery_core:: mysql;
15
15
use std:: process:: Command ;
@@ -365,7 +365,8 @@ mod mysql {
365
365
let migrations = get_migrations ( ) ;
366
366
367
367
let mchecksum = migrations[ 4 ] . checksum ( ) ;
368
- conn. migrate ( & migrations, true , true , false ) . unwrap ( ) ;
368
+ conn. migrate ( & migrations, true , true , false , Target :: Latest )
369
+ . unwrap ( ) ;
369
370
370
371
for _row in conn
371
372
. query ( "SELECT version, checksum FROM refinery_schema_history where version = (SELECT MAX(version) from refinery_schema_history)" )
@@ -380,6 +381,53 @@ mod mysql {
380
381
} ) ;
381
382
}
382
383
384
+ #[ test]
385
+ fn migrates_to_target_migration ( ) {
386
+ run_test ( || {
387
+ let pool =
388
+ mysql:: Pool :: new ( "mysql://refinery:root@localhost:3306/refinery_test" ) . unwrap ( ) ;
389
+ let mut conn = pool. get_conn ( ) . unwrap ( ) ;
390
+
391
+ embedded:: migrations:: runner ( )
392
+ . set_target ( Target :: Version ( 3 ) )
393
+ . run ( & mut conn)
394
+ . unwrap ( ) ;
395
+
396
+ for _row in conn
397
+ . query ( "SELECT version, checksum FROM refinery_schema_history where version = (SELECT MAX(version) from refinery_schema_history)" )
398
+ . unwrap ( )
399
+ {
400
+ let row = _row. unwrap ( ) ;
401
+ let current: i32 = row. get ( 0 ) . unwrap ( ) ;
402
+ assert_eq ! ( 3 , current) ;
403
+ }
404
+ } ) ;
405
+ }
406
+
407
+ #[ test]
408
+ fn migrates_to_target_migration_grouped ( ) {
409
+ run_test ( || {
410
+ let pool =
411
+ mysql:: Pool :: new ( "mysql://refinery:root@localhost:3306/refinery_test" ) . unwrap ( ) ;
412
+ let mut conn = pool. get_conn ( ) . unwrap ( ) ;
413
+
414
+ embedded:: migrations:: runner ( )
415
+ . set_target ( Target :: Version ( 3 ) )
416
+ . set_grouped ( true )
417
+ . run ( & mut conn)
418
+ . unwrap ( ) ;
419
+
420
+ for _row in conn
421
+ . query ( "SELECT version, checksum FROM refinery_schema_history where version = (SELECT MAX(version) from refinery_schema_history)" )
422
+ . unwrap ( )
423
+ {
424
+ let row = _row. unwrap ( ) ;
425
+ let current: i32 = row. get ( 0 ) . unwrap ( ) ;
426
+ assert_eq ! ( 3 , current) ;
427
+ }
428
+ } ) ;
429
+ }
430
+
383
431
#[ test]
384
432
fn aborts_on_missing_migration_on_filesystem ( ) {
385
433
run_test ( || {
@@ -394,7 +442,9 @@ mod mysql {
394
442
& "ALTER TABLE cars ADD year INTEGER;" ,
395
443
)
396
444
. unwrap ( ) ;
397
- let err = conn. migrate ( & [ migration] , true , true , false ) . unwrap_err ( ) ;
445
+ let err = conn
446
+ . migrate ( & [ migration] , true , true , false , Target :: Latest )
447
+ . unwrap_err ( ) ;
398
448
399
449
match err {
400
450
Error :: MissingVersion ( missing) => {
@@ -421,7 +471,7 @@ mod mysql {
421
471
)
422
472
. unwrap ( ) ;
423
473
let err = conn
424
- . migrate ( & [ migration. clone ( ) ] , true , false , false )
474
+ . migrate ( & [ migration. clone ( ) ] , true , false , false , Target :: Latest )
425
475
. unwrap_err ( ) ;
426
476
427
477
match err {
@@ -462,7 +512,7 @@ mod mysql {
462
512
)
463
513
. unwrap ( ) ;
464
514
let err = conn
465
- . migrate ( & [ migration1, migration2] , true , true , false )
515
+ . migrate ( & [ migration1, migration2] , true , true , false , Target :: Latest )
466
516
. unwrap_err ( ) ;
467
517
match err {
468
518
Error :: MissingVersion ( missing) => {
0 commit comments