Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flyway can't find classpath:db/migrations

I just started right now a new project in Intellij using Spring Boot ver 2.1.3 and Flyway 5.2.4 with Java 11.

After try to start my project i got :

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is java.lang.IllegalStateException: Cannot find migrations location in: [classpath:db/migration] (please add migrations or check your Flyway configuration)

I have the following folders:

enter image description here

As you can see i have "db/migration" but without any migration, i just started right now. Debugging the class FlywayAutoConfiguration i got the following:

enter image description here

So, i tried to return all files in "classpath:", see:

enter image description here

Note that i just have "application.properties" file.

like image 254
Ronaldo Lanhellas Avatar asked Mar 24 '19 21:03

Ronaldo Lanhellas


3 Answers

Flyway requires at-least one script, disable it until u need it by using following command in application.properties file

spring.flyway.enabled=false

like image 108
Suvarna Avatar answered Nov 20 '22 07:11

Suvarna


It is not that much useful or accurate answer.

But This issue make you frustrated so that i give this solution.

Note: Strange but it's true, Sometime it's not allow copy paste because your folder created db.migration and it expact db->migration(It's not same in this scenario). So whenever you start from scratch. Go to the resource folder -> Create DB folder -> Create migration folder -> Create database file with Version_SubVersion__Name(As defined below).

Normally this happens in following cases,

  1. Path is not proper try using set locations param value.
  2. db.migrate folder not contain any file.
  3. Check name of file : V1_1__(short_desc)
  4. Try to run using, mvn compile flyway:migrate

In my case i already place sql file over there but still it gives same error, Basically i place this sql file using copy paste from somewhere.

When i try to add one new file on same place using IDE (Intellij : Right click on migration folder -> new -> Flyway migration -> versioned migration), then it ask me(warning) about some delicate allowance(normally we mention in database configuration i also place there still), and it start working.

like image 39
Dhwanil Patel Avatar answered Nov 20 '22 08:11

Dhwanil Patel


I believe that Flyway requires at least one migration script to initialize. Try adding a simple sql creation script into your migration folder and give it another try. Alternatively you can disable the flyway dependency until you need it.

like image 40
Guy Avatar answered Nov 20 '22 09:11

Guy