Author: tomdz Date: Sat Nov 26 11:48:23 2005 New Revision: 349139 URL: http://svn.apache.org/viewcvs?rev=349139&view=rev Log: Implemented DDLUTILS-45
Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java?rev=349139&r1=349138&r2=349139&view=diff ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java Sat Nov 26 11:48:23 2005 @@ -199,6 +199,16 @@ public void createTables(Connection connection, Database model, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for creating the tables defined in the database model. + * + * @param model The database model + * @param dropTablesFirst Whether to drop the tables prior to creating them (anew) + * @param continueOnError Whether to continue executing the sql commands when an error occurred + * @return The SQL statements + */ + public String createTablesSql(Database model, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException; + + /** * Creates the tables defined in the database model. * * @param model The database model @@ -220,6 +230,17 @@ public void createTables(Connection connection, Database model, CreationParameters params, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for creating the tables defined in the database model. + * + * @param model The database model + * @param params The parameters used in the creation + * @param dropTablesFirst Whether to drop the tables prior to creating them (anew) + * @param continueOnError Whether to continue executing the sql commands when an error occurred + * @return The SQL statements + */ + public String createTablesSql(Database model, CreationParameters params, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException; + + /** * Alters the database schema so that it match the given model. Drops and table modifications will * not be made. * @@ -240,6 +261,18 @@ public void alterTables(Database desiredDb, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for altering the database schema so that it match the given model. + * + * @param desiredDb The desired database schema + * @param doDrops Whether columns, tables and indexes should be dropped if not in the + * new schema + * @param modifyColumns Whether columns should be altered for datatype, size as required + * @param continueOnError Whether to continue with the next sql statement when an error occurred + * @return The SQL statements + */ + public String alterTablesSql(Database desiredDb, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; + + /** * Alters the database schema so that it match the given model. Drops and table modifications will * not be made. * @@ -262,6 +295,19 @@ public void alterTables(Database desiredDb, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for altering the database schema so that it match the given model. + * + * @param desiredDb The desired database schema + * @param params The parameters used in the creation + * @param doDrops Whether columns, tables and indexes should be dropped if not in the + * new schema + * @param modifyColumns Whether columns should be altered for datatype, size as required + * @param continueOnError Whether to continue with the next sql statement when an error occurred + * @return The SQL statements + */ + public String alterTablesSql(Database desiredDb, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; + + /** * Alters the database schema so that it match the given model. Drops and table modifications will * not be made. * @@ -284,6 +330,19 @@ public void alterTables(Connection connection, Database desiredDb, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for altering the database schema so that it match the given model. + * + * @param connection A connection to the existing database that shall be modified + * @param desiredDb The desired database schema + * @param doDrops Whether columns, tables and indexes should be dropped if not in the + * new schema + * @param modifyColumns Whether columns should be altered for datatype, size as required + * @param continueOnError Whether to continue with the next sql statement when an error occurred + * @return The SQL statements + */ + public String alterTablesSql(Connection connection, Database desiredDb, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; + + /** * Alters the database schema so that it match the given model. Drops and table modifications will * not be made. * @@ -308,12 +367,35 @@ public void alterTables(Connection connection, Database desiredDb, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; /** + * Returns the SQL for altering the database schema so that it match the given model. + * + * @param connection A connection to the existing database that shall be modified + * @param desiredDb The desired database schema + * @param params The parameters used in the creation + * @param doDrops Whether columns, tables and indexes should be dropped if not in the + * new schema + * @param modifyColumns Whether columns should be altered for datatype, size as required + * @param continueOnError Whether to continue with the next sql statement when an error occurred + * @return The SQL statements + */ + public String alterTablesSql(Connection connection, Database desiredDb, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException; + + /** * Drops the tables defined in the given database. * * @param model The database model * @param continueOnError Whether to continue executing the sql commands when an error occurred */ public void dropTables(Database model, boolean continueOnError) throws DynaSqlException; + + /** + * Returns the SQL for dropping the tables defined in the given database. + * + * @param model The database model + * @param continueOnError Whether to continue executing the sql commands when an error occurred + * @return The SQL statements + */ + public String dropTablesSql(Database model, boolean continueOnError) throws DynaSqlException; /** * Drops the tables defined in the given database. Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java?rev=349139&r1=349138&r2=349139&view=diff ============================================================================== --- db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java (original) +++ db/ddlutils/trunk/src/java/org/apache/ddlutils/platform/PlatformImplBase.java Sat Nov 26 11:48:23 2005 @@ -269,6 +269,16 @@ */ public void createTables(Connection connection, Database model, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException { + String sql = createTablesSql(model, dropTablesFirst, continueOnError); + + evaluateBatch(connection, sql, continueOnError); + } + + /** + * [EMAIL PROTECTED] + */ + public String createTablesSql(Database model, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException + { String sql = null; try @@ -283,7 +293,7 @@ { // won't happen because we're using a string writer } - evaluateBatch(connection, sql, continueOnError); + return sql; } /** @@ -308,6 +318,16 @@ */ public void createTables(Connection connection, Database model, CreationParameters params, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException { + String sql = createTablesSql(model, params, dropTablesFirst, continueOnError); + + evaluateBatch(connection, sql, continueOnError); + } + + /** + * [EMAIL PROTECTED] + */ + public String createTablesSql(Database model, CreationParameters params, boolean dropTablesFirst, boolean continueOnError) throws DynaSqlException + { String sql = null; try @@ -322,7 +342,7 @@ { // won't happen because we're using a string writer } - evaluateBatch(connection, sql, continueOnError); + return sql; } /** @@ -353,6 +373,23 @@ /** * [EMAIL PROTECTED] */ + public String alterTablesSql(Database desiredDb, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException + { + Connection connection = borrowConnection(); + + try + { + return alterTablesSql(connection, desiredDb, doDrops, modifyColumns, continueOnError); + } + finally + { + returnConnection(connection); + } + } + + /** + * [EMAIL PROTECTED] + */ public void alterTables(Database desiredDb, CreationParameters params, boolean continueOnError) throws DynaSqlException { alterTables(desiredDb, params, false, false, continueOnError); @@ -378,6 +415,23 @@ /** * [EMAIL PROTECTED] */ + public String alterTablesSql(Database desiredDb, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException + { + Connection connection = borrowConnection(); + + try + { + return alterTablesSql(connection, desiredDb, params, doDrops, modifyColumns, continueOnError); + } + finally + { + returnConnection(connection); + } + } + + /** + * [EMAIL PROTECTED] + */ public void alterTables(Connection connection, Database desiredDb, boolean continueOnError) throws DynaSqlException { alterTables(connection, desiredDb, false, false, continueOnError); @@ -388,6 +442,16 @@ */ public void alterTables(Connection connection, Database desiredModel, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException { + String sql = alterTablesSql(connection, desiredModel, doDrops, modifyColumns, continueOnError); + + evaluateBatch(connection, sql, continueOnError); + } + + /** + * [EMAIL PROTECTED] + */ + public String alterTablesSql(Connection connection, Database desiredModel, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException + { String sql = null; Database currentModel = readModelFromDatabase(connection); @@ -403,7 +467,7 @@ { // won't happen because we're using a string writer } - evaluateBatch(connection, sql, continueOnError); + return sql; } /** @@ -419,6 +483,16 @@ */ public void alterTables(Connection connection, Database desiredModel, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException { + String sql = alterTablesSql(connection, desiredModel, params, doDrops, modifyColumns, continueOnError); + + evaluateBatch(connection, sql, continueOnError); + } + + /** + * [EMAIL PROTECTED] + */ + public String alterTablesSql(Connection connection, Database desiredModel, CreationParameters params, boolean doDrops, boolean modifyColumns, boolean continueOnError) throws DynaSqlException + { String sql = null; Database currentModel = readModelFromDatabase(connection); @@ -434,7 +508,7 @@ { // won't happen because we're using a string writer } - evaluateBatch(connection, sql, continueOnError); + return sql; } /** @@ -459,6 +533,16 @@ */ public void dropTables(Connection connection, Database model, boolean continueOnError) throws DynaSqlException { + String sql = dropTablesSql(model, continueOnError); + + evaluateBatch(connection, sql, continueOnError); + } + + /** + * [EMAIL PROTECTED] + */ + public String dropTablesSql(Database model, boolean continueOnError) throws DynaSqlException + { String sql = null; try @@ -473,7 +557,7 @@ { // won't happen because we're using a string writer } - evaluateBatch(connection, sql, continueOnError); + return sql; } /**