DaveX
DaveX

Reputation: 1

Flyway DataBase initialization or update

I want to use flyway for an existing application.

There should be two different cases:

1) Application installation: DDL and initilization of the Database

2) Application update: migrate database

The problem is if i install Version 6.0 i have e.g.:

V1_0_1__CreateShema (for 6.0.0)
V1_0_2__InitData (for 6.0.0)
....
V4_0_0__Update_DDL_and_DML
V5_0_0__Update_DDL_and_DML
V6_0_0__Update_DDL_and_DML

If i set init version to V1.0.0 it will execute all updates until V6_0_0 but it should skip all updates after initialization of the Database.

To install an old shema so i can use all udpate scripts even for a fresh install would be very hard (no db version history so i have to do reverse engineering)

I could use a workaround:

1) Check if version table exist
2) If not - migrate to version 1.0.2
3) drop the version table
4) init again with version 6.0.0

There should be a better way isnt it?

Upvotes: 0

Views: 469

Answers (1)

Axel Fontaine
Axel Fontaine

Reputation: 35169

I've highlighted the problem:

V1_0_1__CreateShema (for 6.0.0)
V1_0_2__InitData (for 6.0.0)

To get to 6.0 you should run all scripts up to V6_0_0__Update_DDL_and_DML

V1 should be for V1 and never change afterwards.

Upvotes: 1

Related Questions