CrazyCoder
CrazyCoder

Reputation: 2605

Flyway - Migrate to specific version

Is there a way to tell flyway to migrate only to specific version? For e.g. I have 4 versions e.g. V1, V2, V3and V4 scripts and I want to migrate only to V3 but not to v4.

Upvotes: 19

Views: 23003

Answers (3)

Slettal
Slettal

Reputation: 1029

The migrate Task has a "target" attribute which lets you specify that.

target - The target version up to which Flyway should consider migrations. Migrations with a higher version number will be ignored. The special value current designates the current version of the schema.

Doc for CommandLine: https://flywaydb.org/documentation/usage/commandline/migrate

Example for maven

mvn -Dflyway.target=5.1 flyway:migrate 

Upvotes: 12

Praytic
Praytic

Reputation: 2071

If you would like to test you migrations, you can use Java API:

@Test
public void test() {
    final FluentConfiguration fluentConfiguration = Flyway.configure()
            .dataSource(dataSource);
    fluentConfiguration.target("3") // stable version
            .load()
            .migrate();
    // ... your SQL injection queries 
    fluentConfiguration
            .target("latest") // remaining versions you need to test
            .load()
            .migrate();
    // ... your SQL select checks
}

Upvotes: 3

Erica
Erica

Reputation: 1728

In case you use flyway command line and you want to migrate only to V3 you should do something like this:

flyway -configFiles=myconf.conf -target=3 migrate

Upvotes: 10

Related Questions