11use diesel:: deserialize:: FromSql ;
22use diesel:: expression:: bound:: Bound ;
33use diesel:: expression:: QueryMetadata ;
4- use diesel:: helper_types:: { max, Limit , Select } ;
4+ use diesel:: helper_types:: { max, Desc , Limit , Order , Select } ;
55use diesel:: insertable:: ColumnInsertValue ;
66use diesel:: prelude:: * ;
77use diesel:: query_builder:: { InsertStatement , QueryFragment , ValuesClause } ;
@@ -19,6 +19,7 @@ use super::schema::__diesel_schema_migrations::dsl::*;
1919pub trait MigrationConnection : diesel:: migration:: MigrationConnection {
2020 fn previously_run_migration_versions ( & self ) -> QueryResult < HashSet < String > > ;
2121 fn latest_run_migration_version ( & self ) -> QueryResult < Option < String > > ;
22+ fn latest_run_migration_versions ( & self , number : i64 ) -> QueryResult < Vec < String > > ;
2223 fn insert_new_migration ( & self , version : & str ) -> QueryResult < ( ) > ;
2324}
2425
3839 Select < __diesel_schema_migrations , version > : LoadQuery < T , String > ,
3940 Limit < Select < __diesel_schema_migrations , max < version > > > : QueryFragment < T :: Backend > ,
4041 T :: Backend : QueryMetadata < Nullable < VarChar > > ,
42+ Order < Limit < Select < __diesel_schema_migrations , version > > , Desc < version > > :
43+ QueryFragment < T :: Backend > ,
4144{
4245 fn previously_run_migration_versions ( & self ) -> QueryResult < HashSet < String > > {
4346 __diesel_schema_migrations
5154 __diesel_schema_migrations. select ( max ( version) ) . first ( self )
5255 }
5356
57+ fn latest_run_migration_versions ( & self , number : i64 ) -> QueryResult < Vec < String > > {
58+ __diesel_schema_migrations
59+ . select ( version)
60+ . order ( version. desc ( ) )
61+ . limit ( number)
62+ . load ( self )
63+ }
64+
5465 fn insert_new_migration ( & self , ver : & str ) -> QueryResult < ( ) > {
5566 :: diesel:: insert_into ( __diesel_schema_migrations)
5667 . values ( & version. eq ( ver) )
0 commit comments