Package org.flywaydb.core.api.migration
Class BaseJavaMigration
- java.lang.Object
-
- org.flywaydb.core.api.migration.BaseJavaMigration
-
- All Implemented Interfaces:
JavaMigration
public abstract class BaseJavaMigration extends java.lang.Object implements JavaMigration
This is the recommended class to extend for implementing Java-based Migrations.
Subclasses should follow the default Flyway naming convention of having a class name with the following structure:
- Versioned Migrations: V2__Add_new_table
- Undo Migrations: U2__Add_new_table
- Repeatable Migrations: R__Add_new_table
The file name consists of the following parts:
- Prefix: V for versioned migrations, U for undo migrations, R for repeatable migrations
- Version: Underscores (automatically replaced by dots at runtime) separate as many parts as you like (Not for repeatable migrations)
- Separator: __ (two underscores)
- Description: Underscores (automatically replaced by spaces at runtime) separate the words
If you need more control over the class name, you can override the default convention by implementing the JavaMigration interface directly. This will allow you to name your class as you wish. Version, description and migration category are provided by implementing the respective methods.
-
-
Constructor Summary
Constructors Constructor Description BaseJavaMigration()Creates a new instance of a Java-based migration following Flyway's default naming convention.
-
Method Summary
Modifier and Type Method Description booleancanExecuteInTransaction()Whether the execution should take place inside a transaction.java.lang.IntegergetChecksum()Computes the checksum of the migration.java.lang.StringgetDescription()MigrationVersiongetVersion()booleanisUndo()Whether this is an undo migration for a previously applied versioned migration.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.flywaydb.core.api.migration.JavaMigration
migrate
-
-
-
-
Method Detail
-
getVersion
public MigrationVersion getVersion()
- Specified by:
getVersionin interfaceJavaMigration- Returns:
- The version of the schema after the migration is complete.
nullfor repeatable migrations.
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescriptionin interfaceJavaMigration- Returns:
- The description of this migration for the migration history. Never
null.
-
getChecksum
public java.lang.Integer getChecksum()
Description copied from interface:JavaMigrationComputes the checksum of the migration.- Specified by:
getChecksumin interfaceJavaMigration- Returns:
- The checksum of the migration.
-
isUndo
public boolean isUndo()
Description copied from interface:JavaMigrationWhether this is an undo migration for a previously applied versioned migration.- Specified by:
isUndoin interfaceJavaMigration- Returns:
trueif it is,falseif not. Alwaysfalsefor repeatable migrations.
-
canExecuteInTransaction
public boolean canExecuteInTransaction()
Description copied from interface:JavaMigrationWhether the execution should take place inside a transaction. Almost all implementation should returntrue. 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.- Specified by:
canExecuteInTransactionin interfaceJavaMigration- Returns:
trueif a transaction should be used (highly recommended), orfalseif not.
-
-