@@ -22,8 +22,9 @@ component output="false" extends="wheels.Global"{
2222 * [category: General Functions]
2323 *
2424 * @version The Database schema version to migrate to
25+ * @missingMigFlag Flag for any available missing migrations
2526 */
26- public string function migrateTo (string version = " " ) {
27+ public string function migrateTo (string version = " " , boolean missingMigFlag ) {
2728 local .rv = " " ;
2829 local .currentVersion = getCurrentMigrationVersion ();
2930 local .appKey = $appKey ();
@@ -34,7 +35,7 @@ component output="false" extends="wheels.Global"{
3435 DirectoryCreate (this .paths .sql );
3536 }
3637 local .migrations = getAvailableMigrations ();
37- if (local .currentVersion > arguments .version ) {
38+ if (local .currentVersion > arguments .version && arguments . missingMigFlag == false ) {
3839 local .rv = " Migrating from #local .currentVersion # down to #arguments .version #.#Chr (13 ) #" ;
3940 for (local .i = ArrayLen (local .migrations ); local .i >= 1 ; local .i -- ) {
4041 local .migration = local .migrations [local .i ];
@@ -63,7 +64,12 @@ component output="false" extends="wheels.Global"{
6364 }
6465 }
6566 } else {
66- local .rv = " Migrating from #local .currentVersion # up to #arguments .version #.#Chr (13 ) #" ;
67+ if (arguments .missingMigFlag ){
68+ local .rv = " Migrating remaining migrations till #arguments .version #.#Chr (13 ) #" ;
69+ $removeVersionAsMigrated (local .currentVersion );
70+ } else {
71+ local .rv = " Migrating from #local .currentVersion # up to #arguments .version #.#Chr (13 ) #" ;
72+ }
6773 for (local .migration in local .migrations ) {
6874 if (local .migration .version <= arguments .version && local .migration .status ! = " migrated" ) {
6975 transaction {
@@ -88,6 +94,9 @@ component output="false" extends="wheels.Global"{
8894 break ;
8995 }
9096 };
97+ if (arguments .missingMigFlag ){
98+ $setVersionAsMigrated (local .currentVersion );
99+ }
91100 }
92101 }
93102 return local .rv ;
0 commit comments