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