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