You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/08/24 07:37:32 UTC

svn commit: r688451 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration: ./ commands/

Author: cbegin
Date: Sat Aug 23 22:37:31 2008
New Revision: 688451

URL: http://svn.apache.org/viewvc?rev=688451&view=rev
Log:
Added real timestamp

Modified:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/Change.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/StatusCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/Change.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/Change.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/Change.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/Change.java Sat Aug 23 22:37:31 2008
@@ -6,12 +6,14 @@
 
   private BigDecimal id;
   private String description;
+  private String appliedTimestamp;
 
   public Change() {
   }
 
-  public Change(BigDecimal id, String description) {
+  public Change(BigDecimal id, String appliedTimestamp, String description) {
     this.id = id;
+    this.appliedTimestamp = appliedTimestamp;
     this.description = description;
   }
 
@@ -31,13 +33,25 @@
     this.description = description;
   }
 
+  public String getAppliedTimestamp() {
+    return appliedTimestamp;
+  }
+
+  public void setAppliedTimestamp(String appliedTimestamp) {
+    this.appliedTimestamp = appliedTimestamp;
+  }
+
   public String toString() {
-    StringBuilder idstring = new StringBuilder(id.toString());
-    idstring.insert(12,":");
-    idstring.insert(10,":");
-    idstring.insert(8," ");
-    idstring.insert(6,"-");
-    idstring.insert(4,"-");
-    return id + " [" + idstring + "] " + description;
+    return id + " " + appliedTimestamp + " " + description;
+  }
+
+  private String formattedId() {
+    StringBuilder idString = new StringBuilder(id.toString());
+    idString.insert(12,":");
+    idString.insert(10,":");
+    idString.insert(8," ");
+    idString.insert(6,"-");
+    idString.insert(4,"-");
+    return idString.toString();
   }
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BaseCommand.java Sat Aug 23 22:37:31 2008
@@ -66,10 +66,13 @@
   protected List<Change> getChangelog() {
     AdHocExecutor executor = getAdHocExecutor();
     try {
-      List<Map<String, Object>> changelog = executor.selectAll("select ID, DESCRIPTION from CHANGELOG order by id");
+      List<Map<String, Object>> changelog = executor.selectAll("select ID, APPLIED_AT, DESCRIPTION from CHANGELOG order by id");
       List<Change> changes = new ArrayList<Change>();
       for (Map<String, Object> change : changelog) {
-        changes.add(new Change(new BigDecimal(change.get("ID").toString()), change.get("DESCRIPTION").toString()));
+        String id = change.get("ID") == null ? null : change.get("ID").toString();
+        String appliedAt = change.get("APPLIED_AT") == null ? null : change.get("APPLIED_AT").toString();
+        String description = change.get("DESCRIPTION") == null ? null : change.get("DESCRIPTION").toString();
+        changes.add(new Change(new BigDecimal(id), appliedAt, description));
       }
       return changes;
     } catch (SQLException e) {
@@ -109,7 +112,7 @@
     return builder.toString();
   }
 
-  protected String getTimestampAsString() {
+  protected String getNextIDAsString() {
     try {
       // Ensure that two subsequent calls are less likely to return the same value.
       Thread.sleep(1000);

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/InitializeCommand.java Sat Aug 23 22:37:31 2008
@@ -23,8 +23,8 @@
     
     copyResourceTo("org/apache/ibatis/migration/template_README", baseFile("README"));
     copyResourceTo("org/apache/ibatis/migration/template_environment.properties", environmentFile());
-    copyResourceTo("org/apache/ibatis/migration/template_changelog.sql", scriptFile(getTimestampAsString() + "_create_changelog.sql"));
-    copyResourceTo("org/apache/ibatis/migration/template_migration.sql", scriptFile(getTimestampAsString() + "_first_migration.sql"),
+    copyResourceTo("org/apache/ibatis/migration/template_changelog.sql", scriptFile(getNextIDAsString() + "_create_changelog.sql"));
+    copyResourceTo("org/apache/ibatis/migration/template_migration.sql", scriptFile(getNextIDAsString() + "_first_migration.sql"),
         new HashMap<String,String>(){{put("description","First migration.");}});
     out.println("Done!");
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/NewCommand.java Sat Aug 23 22:37:31 2008
@@ -20,7 +20,7 @@
     Map<String, String> variables = new HashMap<String, String>();
     variables.put("description", description);
     existingEnvironmentFile();
-    String filename = getTimestampAsString() + "_" + description.replace(' ', '_') + ".sql";
+    String filename = getNextIDAsString() + "_" + description.replace(' ', '_') + ".sql";
     copyResourceTo("org/apache/ibatis/migration/template_migration.sql", scriptFile(filename), variables);
     out.println("Done!");
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/RunCommand.java Sat Aug 23 22:37:31 2008
@@ -10,6 +10,7 @@
 import java.io.FileReader;
 import java.util.Arrays;
 import java.sql.SQLException;
+import java.text.SimpleDateFormat;
 
 public class RunCommand extends BaseCommand {
 
@@ -53,13 +54,18 @@
 
   protected void insertChangelog(Change change) {
     AdHocExecutor executor = getAdHocExecutor();
+    change.setAppliedTimestamp(getAppliedTimestampAsString());
     try {
-      executor.insert("insert into CHANGELOG (ID, DESCRIPTION) values (?,?)", change.getId(), change.getDescription());
+      executor.insert("insert into CHANGELOG (ID, APPLIED_AT, DESCRIPTION) values (?,?,?)", change.getId(), change.getAppliedTimestamp(), change.getDescription());
     } catch (SQLException e) {
       throw new MigrationException("Error querying last applied migration.  Cause: " + e, e);
     } finally {
       executor.closeConnection();
     }
-  }  
+  }
+
+  protected String getAppliedTimestampAsString() {
+    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new java.sql.Date(System.currentTimeMillis()));
+  }
 
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/StatusCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/StatusCommand.java?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/StatusCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/StatusCommand.java Sat Aug 23 22:37:31 2008
@@ -14,7 +14,7 @@
   public void execute(String... params) {
     if (changelogExists()) {
       List<Change> changelog = getChangelog();
-      out.println("ID             TIMESTAMP             DESCRIPTION");
+      out.println("ID             Applied At          Description");
       out.println(horizontalLine("", 60));
       for (Change change : changelog) {
         out.println(change);

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql?rev=688451&r1=688450&r2=688451&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql Sat Aug 23 22:37:31 2008
@@ -11,6 +11,7 @@
 
 CREATE TABLE CHANGELOG (
   ID NUMERIC(20,0) NOT NULL,
+  APPLIED_AT VARCHAR(25) NOT NULL,
   DESCRIPTION VARCHAR(255) NOT NULL
 );