You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2006/07/18 08:00:25 UTC
svn commit: r422981 -
/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java
Author: tomdz
Date: Mon Jul 17 23:00:24 2006
New Revision: 422981
URL: http://svn.apache.org/viewvc?rev=422981&view=rev
Log:
Fix for DDLUTILS-92
Modified:
db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java?rev=422981&r1=422980&r2=422981&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/task/WriteSchemaSqlToFileCommand.java Mon Jul 17 23:00:24 2006
@@ -110,7 +110,6 @@
Platform platform = getPlatform();
boolean isCaseSensitive = platform.isDelimitedIdentifierModeOn();
CreationParameters params = getFilteredParameters(model, platform.getName(), isCaseSensitive);
- Connection connection = null;
try
{
@@ -122,7 +121,37 @@
platform.setSqlCommentsOn(true);
}
platform.getSqlBuilder().setWriter(writer);
- if (isAlterDatabase() && (getDataSource() != null))
+
+ boolean shouldAlter = isAlterDatabase();
+
+ if (shouldAlter)
+ {
+ if (getDataSource() == null)
+ {
+ shouldAlter = false;
+ task.log("Cannot alter the database because no database connection was specified." +
+ " SQL for database creation will be generated instead.",
+ Project.MSG_WARN);
+ }
+ else
+ {
+ try
+ {
+ Connection connection = getDataSource().getConnection();
+
+ connection.close();
+ }
+ catch (SQLException ex)
+ {
+ shouldAlter = false;
+ task.log("Could not establish a connection to the specified database, " +
+ "so SQL for database creation will be generated instead. The error was: " +
+ ex.getMessage(),
+ Project.MSG_WARN);
+ }
+ }
+ }
+ if (shouldAlter)
{
Database currentModel = (getCatalogPattern() != null) || (getSchemaPattern() != null) ?
platform.readModelFromDatabase(null, getCatalogPattern(), getSchemaPattern(), null) :
@@ -146,18 +175,6 @@
else
{
task.log(ex.getMessage() == null ? ex.toString() : ex.getMessage(), Project.MSG_ERR);
- }
- }
- finally
- {
- if (connection != null)
- {
- try
- {
- connection.close();
- }
- catch (SQLException ex)
- {}
}
}
}