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