Package org.flywaydb.core.api.executor

## Interface MigrationExecutor

-     public interface MigrationExecutor

  Executes a migration.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canExecuteInTransaction()` | Whether the execution can take place inside a transaction.
    `void` | `execute​(Context context)` | Executes the migration this executor is associated with.
    `boolean` | `shouldExecute()` | Whether the migration associated with this executor should be executed or not.

- - ### Method Detail

    - #### execute

          void execute​(Context context)
                throws java.sql.SQLException

      Executes the migration this executor is associated with.
      Parameters:
        `context` - The context to use to execute the migration against the DB.
      Throws:
        `java.sql.SQLException` - when the execution of a statement failed.

    - #### canExecuteInTransaction

          boolean canExecuteInTransaction()

      Whether the execution can take place inside a transaction. Almost all implementation should return `true`. This however makes it possible to execute certain migrations outside a transaction. This is useful for databases like PostgreSQL and SQL Server where certain statement can only execute outside a transaction.
      Returns:
        `true` if a transaction should be used (highly recommended), or `false` if not.

    - #### shouldExecute

          boolean shouldExecute()

      Whether the migration associated with this executor should be executed or not.
      Returns:
        `true` if the migration should be executed, or `false` if not.