I have a Spring Boot Application with a couple Entity classes and I'm trying to implement database migrations with flyway. It appears that, on startup, Spring Boot is not running flyway at all.
Here is my application.properties
spring.datasource.url= jdbc:postgresql://localhost:5555/mfidb
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.jpa.hibernate.ddl-auto=validate
spring.flyway.enabled=true
Here are the lines in my build.gradle that have something to do with flyway
plugins {
id 'org.springframework.boot' version '2.2.6.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id 'java'
id "org.flywaydb.flyway" version "6.4.1"
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.flywaydb:flyway-core'
runtime('org.postgresql:postgresql:42.2.12')
}
flyway {
url = 'jdbc:postgresql://localhost:5555/mfidb'
user = 'postgres'
password = 'postgres'
}
I am able to run my migrations by entering gradle flywayMigrate -i
in the terminal.
But I want the migrations to run on startup.
Any help would be greatly appreciated, thanks in advance.
EDIT:
Here is the console output when running the application
2020-05-05 11:55:59.022 INFO 50754 --- [ main] com.ubm.mfi.MfiApplication : Starting MfiApplication on MacBook-Pro.local with PID 50754 (~/Downloads/mfi 5/build/classes/java/main started by will in ~/Downloads/mfi 5)
2020-05-05 11:55:59.024 INFO 50754 --- [ main] com.ubm.mfi.MfiApplication : No active profile set, falling back to default profiles: default
2020-05-05 11:55:59.457 INFO 50754 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2020-05-05 11:55:59.495 INFO 50754 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 33ms. Found 2 JPA repository interfaces.
2020-05-05 11:55:59.778 INFO 50754 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-05-05 11:55:59.783 INFO 50754 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-05-05 11:55:59.784 INFO 50754 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-05-05 11:55:59.838 INFO 50754 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-05-05 11:55:59.838 INFO 50754 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 768 ms
2020-05-05 11:55:59.917 INFO 50754 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-05-05 11:55:59.944 INFO 50754 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.4.12.Final
2020-05-05 11:55:59.991 INFO 50754 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-05-05 11:56:00.051 INFO 50754 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-05-05 11:56:00.114 INFO 50754 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2020-05-05 11:56:00.124 INFO 50754 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL10Dialect
2020-05-05 11:56:00.545 INFO 50754 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2020-05-05 11:56:00.548 INFO 50754 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2020-05-05 11:56:00.818 WARN 50754 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2020-05-05 11:56:00.891 INFO 50754 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-05-05 11:56:01.005 INFO 50754 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-05-05 11:56:01.007 INFO 50754 --- [ main] com.ubm.mfi.MfiApplication : Started MfiApplication in 2.255 seconds (JVM running for 2.983)
Here is the path to the data migrations
Add logging.level.root=debug
your application.properties
file to see detailed information during start application.
Also just add flyway user and password to application.properties
.
spring.flyway.url = 'jdbc:postgresql://localhost:5555/mfidb'
spring.flyway.password=postgres
spring.flyway.user=postgres
if you dont need to run flyway from gradle, you can remove flyway config from build.gradle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With