@@ -835,39 +835,41 @@ impl SignerDb {
835
835
debug ! ( "Current SignerDB schema version: {}" , current_db_version) ;
836
836
837
837
for migration in MIGRATIONS . iter ( ) {
838
- if current_db_version < migration. version {
839
- if current_db_version != migration. version - 1 {
840
- // This implies a gap or out-of-order migration definition,
841
- // or the database is at a version X, and the next migration is X+2 instead of X+1.
842
- sql_tx. rollback ( ) ?;
843
- return Err ( DBError :: Other ( format ! (
844
- "Migration step missing or out of order. Current DB version: {}, trying to apply migration for version: {}" ,
845
- current_db_version, migration. version
846
- ) ) ) ;
847
- }
848
- debug ! (
849
- "Applying SignerDB migration for schema version {}" ,
850
- migration. version
851
- ) ;
852
- for statement in migration. statements . iter ( ) {
853
- sql_tx. execute_batch ( statement) ?;
854
- }
855
-
856
- // Verify that the migration script updated the version correctly
857
- let new_version_check = Self :: get_schema_version ( & sql_tx) ?;
858
- if new_version_check != migration. version {
859
- sql_tx. rollback ( ) ?;
860
- return Err ( DBError :: Other ( format ! (
861
- "Migration to version {} failed to update DB version. Expected {}, got {}." ,
862
- migration. version, migration. version, new_version_check
863
- ) ) ) ;
864
- }
865
- current_db_version = new_version_check;
866
- debug ! (
867
- "Successfully migrated to schema version {}" ,
868
- current_db_version
869
- ) ;
838
+ if current_db_version >= migration. version {
839
+ // don't need this migration, continue to see if we need later migrations
840
+ continue ;
870
841
}
842
+ if current_db_version != migration. version - 1 {
843
+ // This implies a gap or out-of-order migration definition,
844
+ // or the database is at a version X, and the next migration is X+2 instead of X+1.
845
+ sql_tx. rollback ( ) ?;
846
+ return Err ( DBError :: Other ( format ! (
847
+ "Migration step missing or out of order. Current DB version: {}, trying to apply migration for version: {}" ,
848
+ current_db_version, migration. version
849
+ ) ) ) ;
850
+ }
851
+ debug ! (
852
+ "Applying SignerDB migration for schema version {}" ,
853
+ migration. version
854
+ ) ;
855
+ for statement in migration. statements . iter ( ) {
856
+ sql_tx. execute_batch ( statement) ?;
857
+ }
858
+
859
+ // Verify that the migration script updated the version correctly
860
+ let new_version_check = Self :: get_schema_version ( & sql_tx) ?;
861
+ if new_version_check != migration. version {
862
+ sql_tx. rollback ( ) ?;
863
+ return Err ( DBError :: Other ( format ! (
864
+ "Migration to version {} failed to update DB version. Expected {}, got {}." ,
865
+ migration. version, migration. version, new_version_check
866
+ ) ) ) ;
867
+ }
868
+ current_db_version = new_version_check;
869
+ debug ! (
870
+ "Successfully migrated to schema version {}" ,
871
+ current_db_version
872
+ ) ;
871
873
}
872
874
873
875
if current_db_version < Self :: SCHEMA_VERSION {
0 commit comments