Package org.flywaydb.core.api.migration
Class BaseJavaMigration
java.lang.Object
org.flywaydb.core.api.migration.BaseJavaMigration
- All Implemented Interfaces:
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
ConstructorDescriptionCreates a new instance of a Java-based migration following Flyway's default naming convention. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Whether the execution should take place inside a transaction.protected void
extractVersionAndDescription
(String shortName, String prefix, boolean repeatable) protected void
init()
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
getResolvedMigration, getType, migrate
-
Constructor Details
-
BaseJavaMigration
public BaseJavaMigration()Creates a new instance of a Java-based migration following Flyway's default naming convention.
-
-
Method Details
-
init
protected void init() -
extractVersionAndDescription
-
getVersion
- Specified by:
getVersion
in interfaceJavaMigration
- Returns:
- The version of the schema after the migration is complete.
null
for repeatable migrations.
-
getDescription
- Specified by:
getDescription
in interfaceJavaMigration
- Returns:
- The description of this migration for the migration history. Never
null
.
-
getChecksum
- Specified by:
getChecksum
in interfaceJavaMigration
- Returns:
- The checksum of this migration.
-
canExecuteInTransaction
public boolean canExecuteInTransaction()Description copied from interface:JavaMigration
Whether the execution should take place inside a transaction. Almost all implementations 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:
canExecuteInTransaction
in interfaceJavaMigration
- Returns:
true
if a transaction should be used (highly recommended), orfalse
if not.
-