1- use std:: {
2- env,
3- path:: { Path , PathBuf } ,
4- process:: Command ,
5- } ;
6-
7- fn example_path ( ) -> PathBuf {
8- Path :: new ( env ! ( "CARGO_MANIFEST_DIR" ) ) . join ( "../../../examples/sea-orm" )
9- }
1+ use sea_orm:: Database ;
2+ use sea_orm_migration:: migrator:: MigratorTrait ;
3+ use shield_sea_orm:: migrations:: Migrator ;
104
115const BACKENDS : & [ ( & str , & str ) ] = & [
126 ( "mysql" , "mysql://shield:shield@localhost:13306/shield" ) ,
@@ -17,49 +11,26 @@ const BACKENDS: &[(&str, &str)] = &[
1711 ( "sqlite" , "sqlite:///tmp/shield-seaorm.sqlite?mode=rwc" ) ,
1812] ;
1913
20- #[ test]
21- pub fn migrations ( ) {
14+ #[ tokio :: test]
15+ async fn migrations ( ) {
2216 for ( backend, url) in BACKENDS {
23- // Check up migrations
24- assert ! (
25- Command :: new( "sea-orm-cli" )
26- . arg( "migrate" )
27- . arg( "fresh" )
28- . arg( "-u" )
29- . arg( url)
30- . arg( "-d" )
31- . arg( example_path( ) )
32- . status( )
33- . unwrap_or_else( |_| panic!( "{backend} up migrations should succeed." ) )
34- . success( )
35- ) ;
17+ let database = Database :: connect ( url. to_owned ( ) )
18+ . await
19+ . unwrap_or_else ( |err| panic ! ( "Connect to backend `{backend}` failed: {err}" ) ) ;
20+
21+ // Up migrations
22+ Migrator :: fresh ( & database)
23+ . await
24+ . unwrap_or_else ( |err| panic ! ( "Up migrations for backend `{backend}` failed: {err}" ) ) ;
3625
37- // Check down migrations
38- assert ! (
39- Command :: new( "sea-orm-cli" )
40- . arg( "migrate" )
41- . arg( "refresh" )
42- . arg( "-u" )
43- . arg( url)
44- . arg( "-d" )
45- . arg( example_path( ) )
46- . status( )
47- . unwrap_or_else( |_| panic!( "{backend} down migrations should succeed." ) )
48- . success( )
49- ) ;
26+ // Down migrations
27+ Migrator :: refresh ( & database)
28+ . await
29+ . unwrap_or_else ( |err| panic ! ( "Down migrations for backend `{backend}` failed: {err}" ) ) ;
5030
5131 // Cleanup
52- assert ! (
53- Command :: new( "sea-orm-cli" )
54- . arg( "migrate" )
55- . arg( "reset" )
56- . arg( "-u" )
57- . arg( url)
58- . arg( "-d" )
59- . arg( example_path( ) )
60- . status( )
61- . unwrap_or_else( |_| panic!( "{backend} cleanup should succeed." ) )
62- . success( )
63- ) ;
32+ Migrator :: reset ( & database)
33+ . await
34+ . unwrap_or_else ( |err| panic ! ( "Cleanup for backend `{backend}` failed: {err}" ) ) ;
6435 }
6536}
0 commit comments