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/26 05:57:53 UTC

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

Author: cbegin
Date: Mon Aug 25 20:57:52 2008
New Revision: 688954

URL: http://svn.apache.org/viewvc?rev=688954&view=rev
Log:
implemented dynamic changelog table name

Modified:
    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/BootstrapCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.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/commands/UpCommand.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_changelog.sql
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties

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=688954&r1=688953&r2=688954&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 Mon Aug 25 20:57:52 2008
@@ -52,7 +52,7 @@
   protected List<Change> getChangelog() {
     AdHocExecutor executor = getAdHocExecutor();
     try {
-      List<Map<String, Object>> changelog = executor.selectAll("select ID, APPLIED_AT, DESCRIPTION from CHANGELOG order by id");
+      List<Map<String, Object>> changelog = executor.selectAll("select ID, APPLIED_AT, DESCRIPTION from "+changelogTable()+" order by id");
       List<Change> changes = new ArrayList<Change>();
       for (Map<String, Object> change : changelog) {
         String id = change.get("ID") == null ? null : change.get("ID").toString();
@@ -68,6 +68,14 @@
     }
   }
 
+  protected String changelogTable() {
+    String changelog = environmentProperties().getProperty("changelog");
+    if (changelog == null) {
+      changelog = "CHANGELOG";
+    }
+    return changelog;
+  }
+
   protected Change getLastAppliedChange() {
     List<Change> changelog = getChangelog();
     return changelog.get(changelog.size() - 1);
@@ -76,7 +84,7 @@
   protected boolean changelogExists() {
     AdHocExecutor executor = getAdHocExecutor();
     try {
-      executor.selectAll("select ID, DESCRIPTION from CHANGELOG");
+      executor.selectAll("select ID, APPLIED_AT, DESCRIPTION from " + changelogTable());
       return true;
     } catch (SQLException e) {
       return false;
@@ -138,7 +146,7 @@
   protected AdHocExecutor getAdHocExecutor() {
     lazyInitializeDrivers();
 
-    Properties props = getEnvironmentProperties();
+    Properties props = environmentProperties();
     String driver = props.getProperty("driver");
     String url = props.getProperty("url");
     String username = props.getProperty("username");
@@ -150,7 +158,7 @@
     try {
       lazyInitializeDrivers();
 
-      Properties props = getEnvironmentProperties();
+      Properties props = environmentProperties();
       String driver = props.getProperty("driver");
       String url = props.getProperty("url");
       String username = props.getProperty("username");
@@ -214,7 +222,7 @@
     }
   }
 
-  protected Properties getEnvironmentProperties() {
+  protected Properties environmentProperties() {
     try {
       File file = existingEnvironmentFile();
       Properties props = new Properties();

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BootstrapCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BootstrapCommand.java?rev=688954&r1=688953&r2=688954&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BootstrapCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/BootstrapCommand.java Mon Aug 25 20:57:52 2008
@@ -19,7 +19,7 @@
         if (bootstrap.exists()) {
           out.println(horizontalLine("Applying: bootstrap.sql", 80));
           ScriptRunner runner = getScriptRunner();
-          runner.runScript(new MigrationReader(new FileReader(bootstrap), false, getEnvironmentProperties()));
+          runner.runScript(new MigrationReader(new FileReader(bootstrap), false, environmentProperties()));
         } else {
           out.println("Error, could not run bootstrap.sql.  The file does not exist.");
         }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java?rev=688954&r1=688953&r2=688954&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/DownCommand.java Mon Aug 25 20:57:52 2008
@@ -22,7 +22,7 @@
         if (change.getId().equals(lastChange.getId())) {
           out.println(horizontalLine("Undoing: " + change.getFilename(), 80));
           ScriptRunner runner = getScriptRunner();
-          runner.runScript(new MigrationReader(new FileReader(scriptFile(change.getFilename())), true, getEnvironmentProperties()));
+          runner.runScript(new MigrationReader(new FileReader(scriptFile(change.getFilename())), true, environmentProperties()));
           if (changelogExists()) {
             deleteChange(change);
           } else {
@@ -39,7 +39,7 @@
   protected void deleteChange(Change change) {
     AdHocExecutor executor = getAdHocExecutor();
     try {
-      executor.delete("delete from CHANGELOG where id = ?", change.getId());
+      executor.delete("delete from " + changelogTable() + " where id = ?", change.getId());
     } catch (SQLException e) {
       throw new MigrationException("Error querying last applied migration.  Cause: " + e, e);
     } finally {

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=688954&r1=688953&r2=688954&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 Mon Aug 25 20:57:52 2008
@@ -13,7 +13,7 @@
 
   public void execute(String... params) {
     out.println("ID             Applied At          Description");
-    out.println(horizontalLine("", 60));
+    out.println(horizontalLine("", 80));
     List<Change> merged = new ArrayList<Change>();
     List<Change> migrations = getMigrations();
     if (changelogExists()) {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java?rev=688954&r1=688953&r2=688954&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/commands/UpCommand.java Mon Aug 25 20:57:52 2008
@@ -32,7 +32,7 @@
         if (lastChange == null || change.getId().compareTo(lastChange.getId()) > 0) {
           out.println(horizontalLine("Applying: " + change.getFilename(), 80));
           ScriptRunner runner = getScriptRunner();
-          runner.runScript(new MigrationReader(new FileReader(scriptFile(change.getFilename())), false, getEnvironmentProperties()));
+          runner.runScript(new MigrationReader(new FileReader(scriptFile(change.getFilename())), false, environmentProperties()));
           insertChangelog(change);
           if (runOneStepOnly) {
             break;
@@ -48,7 +48,7 @@
     AdHocExecutor executor = getAdHocExecutor();
     change.setAppliedTimestamp(getAppliedTimestampAsString());
     try {
-      executor.insert("insert into CHANGELOG (ID, APPLIED_AT, DESCRIPTION) values (?,?,?)", change.getId(), change.getAppliedTimestamp(), change.getDescription());
+      executor.insert("insert into " + changelogTable() + " (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 {

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=688954&r1=688953&r2=688954&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 Mon Aug 25 20:57:52 2008
@@ -9,16 +9,16 @@
 -- Be sure that ID and DESCRIPTION fields exist in
 -- BigInteger and String compatible fields respectively.
 
-CREATE TABLE CHANGELOG (
+CREATE TABLE ${changelog} (
   ID NUMERIC(20,0) NOT NULL,
   APPLIED_AT VARCHAR(25) NOT NULL,
   DESCRIPTION VARCHAR(255) NOT NULL
 );
 
-ALTER TABLE CHANGELOG
-  ADD CONSTRAINT PK_CHANGELOG
+ALTER TABLE ${changelog}
+  ADD CONSTRAINT PK_${changelog}
   PRIMARY KEY (id);
 
 --//@UNDO
 
-DROP TABLE CHANGELOG;
\ No newline at end of file
+DROP TABLE ${changelog};
\ No newline at end of file

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties?rev=688954&r1=688953&r2=688954&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/migration/template_environment.properties Mon Aug 25 20:57:52 2008
@@ -3,3 +3,6 @@
 url=
 username=
 password=
+
+# Name of the table that tracks changes to the database
+changelog=CHANGELOG
\ No newline at end of file