Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.liquibase.maven.plugins;
  
  import java.io.File;
  import java.io.FileWriter;
  import java.io.Writer;
 
 
Liquibase RollbackSQL Maven plugin. This plugin generates the SQL that is required to rollback the database to the specified pointing attributes 'rollbackCount', 'rollbackTag'

Author(s):
Oleg Taranenko
Description:
Liquibase RollbackSQL Maven plugin
Goal:
rollbackSQL
 
 public class LiquibaseRollbackSQL extends LiquibaseRollback {

  
The file to output the Migration SQL script to, if it exists it will be overwritten.

Parameter:
expression="${liquibase.migrationSqlOutputFile}" default-value="${project.build.directory}/liquibase/migrate.sql"
 
   protected File migrationSqlOutputFile;

  
The writer for writing the migration SQL.
 
   private Writer outputWriter;
 
   @Override
   protected boolean isPromptOnNonLocalDatabase() {
     // Always run on an non-local database as we are not actually modifying the database
     // when run on it.
     return false;
   }
 
 
   @Override
           throws MojoExecutionException {
     Liquibase liquibase = super.createLiquibase(fodb);
 
     // Setup the output file writer
     try {
       if (!.exists()) {
         // Ensure the parent directories exist
         // Create the actual file
         if (!.createNewFile()) {
           throw new MojoExecutionException("Cannot create the migration SQL file; "
                                            + .getAbsolutePath());
         }
       }
     }
     catch (IOException e) {
       getLog().error(e);
       throw new MojoExecutionException("Failed to create SQL output writer"e);
     }
     getLog().info("Output SQL Migration File: " + .getAbsolutePath());
     return liquibase;
   }
 
   @Override
   protected void printSettings(String indent) {
     super.printSettings(indent);
     getLog().info(indent + "migrationSQLOutputFile: " + );
   }
 
   @Override
   protected void cleanup(Database db) {
     super.cleanup(db);
     if ( != null) {
       try {
           .close();
         }
       catch (IOException e) {
         getLog().error(e);
       }
     }
   }
 
 
   @Override
   protected void performLiquibaseTask(Liquibase liquibasethrows LiquibaseException {
 	    switch () {
 	      case : {
 	        liquibase.rollback();
 	        break;
 	      }
 	      case : {
 	        DateFormat format = DateFormat.getDateInstance();
	        try {
	          liquibase.rollback(format.parse(), );
	        }
	        catch (ParseException e) {
	          String message = "Error parsing rollbackDate: " + e.getMessage();
	          if (format instanceof SimpleDateFormat) {
	            message += "\nDate must match pattern: " + ((SimpleDateFormat)format).toPattern();
	          }
	          throw new LiquibaseException(messagee);
	        }
	        break;
	      }
	      case : {
	        liquibase.rollback();
	        break;
	      }
	      default: {
	        throw new IllegalStateException("Unexpected rollback type, " + );
	      }
	    }
  }
New to GrepCode? Check out our FAQ X