No one sent a response, so I will post what I found out.
M. In his comments on the Deinum question, he was really right, the problem was the lack of a data source.
My initial question was what should be the approach for debugging this problem. Obviously, one option is to publish to stackoverflow :) But I would like to know how to do it myself.
Spring Boot has several classes that look at your code and class path and act accordingly. For example, there are classes that enforce rules, such as "if Flyway is on the way and there is a data source, then run Flyway." This rule did not work in my case because I did not have a data source.
This is not the case when the code you write calls Spring Boot; on the contrary, Spring Boot (external to your code) checks your code and decides what to do based on the rules. This architecture is known as action at a distance . The main problem with action at a distance is very difficult to debug.
The only real way to find a solution, and that’s how I started checking the M. Deinum diagnostics, to read the Spring boot source code and understand the annotations that are used to create Spring Boot code,
From source code to Spring Boot Flyway integration, we see
@ConditionalOnClass(Flyway.class) @ConditionalOnBean(DataSource.class)
This means that "this code will be executed if Flyway is in the classpath, and if there is a DataSource bean available, otherwise it will work seamlessly."
So, the answer to the question "how to debug this problem" is that there is no mechanism other than reading the Spring Boot source code and figuring out how it works.
If you want to avoid such a problem, you need to avoid frameworks that work through the "action at a distance" and include Spring Boot.