Author: cbegin
Date: Sun Jan 24 01:40:31 2010
New Revision: 902518

URL: http://svn.apache.org/viewvc?rev=902518&view=rev
Log:
added migrations shortcuts, up/down step count parameters

Modified:
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/migration/MigratorTest.java
    ibatis/java/ibatis-3/trunk/version.properties

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/CommandLine.java
 Sun Jan 24 01:40:31 2010
@@ -167,12 +167,14 @@
     out.println("  init               Creates (if necessary) and initializes a 
migration path.");
     out.println("  bootstrap          Runs the bootstrap SQL script (see 
scripts/bootstrap.sql for more).");
     out.println("  new <description>  Creates a new migration with the 
provided description.");
-    out.println("  up                 Run all unapplied migrations.");
-    out.println("  down               Undoes the last migration applied to the 
database.");
+    out.println("  up [n]             Run unapplied migrations, ALL by 
default, or 'n' specified.");
+    out.println("  down [n]           Undoes migrations applied to the 
database. ONE by default or 'n' specified.");
     out.println("  version <version>  Migrates the database up or down to the 
specified version.");
     out.println("  pending            Force executes pending migrations out of 
order (not recommended).");
     out.println("  status             Prints the changelog from the database 
if the changelog table exists.");
     out.println("  script <v1> <v2>   Generates a delta migration script from 
version v1 to v2 (undo if v1 > v2).");
+    out.println("");
+    out.println("  * Shortcuts are accepted by using the first few 
(unambiguous) letters of each command..");
     out.println();
     out.flush();
   }

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
 Sun Jan 24 01:40:31 2010
@@ -291,6 +291,19 @@
     return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new 
java.sql.Date(System.currentTimeMillis()));
   }
 
+  protected int getStepCountParameter(int defaultSteps, String... params) {
+    final String stringParam = params.length > 0 ? params[0] : null;
+    if (stringParam == null || "".equals(stringParam)) {
+      return defaultSteps;
+    } else {
+      try {
+        return Integer.parseInt(stringParam);
+      } catch (NumberFormatException e) {
+        throw new MigrationException("Invalid parameter passed to command: " + 
params[0]);
+      }
+    }
+  }
+
   private File getCustomDriverPath() {
     String customDriverPath = 
environmentProperties().getProperty("driver_path");
     if (customDriverPath != null && customDriverPath.length() > 0) {

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java
 Sun Jan 24 01:40:31 2010
@@ -25,6 +25,7 @@
       Change lastChange = getLastAppliedChange();
       List<Change> migrations = getMigrations();
       Collections.reverse(migrations);
+      int steps = 0;
       for (Change change : migrations) {
         if (change.getId().equals(lastChange.getId())) {
           out.println(horizontalLine("Undoing: " + change.getFilename(), 80));
@@ -40,7 +41,12 @@
             out.println("Changelog doesn't exist. No further migrations will 
be undone (normal for the last migration).");
           }
           out.println();
-          break;
+          steps++;
+          final int limit = getStepCountParameter(1, params);
+          if (steps == limit) {
+            break;
+          }
+          lastChange = getLastAppliedChange();
         }
       }
     } catch (Exception e) {

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java
 Sun Jan 24 01:40:31 2010
@@ -29,6 +29,7 @@
         lastChange = getLastAppliedChange();
       }
       List<Change> migrations = getMigrations();
+      int steps = 0;
       for (Change change : migrations) {
         if (lastChange == null || change.getId().compareTo(lastChange.getId()) 
> 0) {
           out.println(horizontalLine("Applying: " + change.getFilename(), 80));
@@ -40,7 +41,9 @@
           }
           insertChangelog(change);
           out.println();
-          if (runOneStepOnly) {
+          steps++;
+          final int limit = getStepCountParameter(Integer.MAX_VALUE, params);
+          if (steps == limit || runOneStepOnly) {
             break;
           }
         }

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/migration/MigratorTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/migration/MigratorTest.java?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/migration/MigratorTest.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/migration/MigratorTest.java
 Sun Jan 24 01:40:31 2010
@@ -63,14 +63,14 @@
     assertTrue(buffer.toString().contains("...pending..."));
     buffer.clear();
 
-    Migrator.main(args("--path=" + f.getAbsolutePath(), "up"));
+    Migrator.main(args("--path=" + f.getAbsolutePath(), "up", "3000"));
     buffer.clear();
 
     Migrator.main(args("--path=" + f.getAbsolutePath(), "status"));
     assertFalse(buffer.toString().contains("...pending..."));
     buffer.clear();
 
-    Migrator.main(args("--path=" + f.getAbsolutePath(), "down"));
+    Migrator.main(args("--path=" + f.getAbsolutePath(), "down", "2"));
     buffer.clear();
 
     Migrator.main(args("--path=" + f.getAbsolutePath(), "status"));

Modified: ibatis/java/ibatis-3/trunk/version.properties
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/version.properties?rev=902518&r1=902517&r2=902518&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/version.properties (original)
+++ ibatis/java/ibatis-3/trunk/version.properties Sun Jan 24 01:40:31 2010
@@ -1,5 +1,5 @@
 #Build version info
-#Sat Jan 09 15:30:01 MST 2010
+#Sat Jan 23 18:34:51 MST 2010
 version=3.0.0
-buildDate=2010/01/09 15\:30
-buildNum=221
+buildDate=2010/01/23 18\:34
+buildNum=225


Reply via email to