Spring Flyway Support
Jump to navigation
Jump to search
Internal
Overview
TODO
- Understand how main/resource/db/migration/V1.0_init.sql drives schema creation with Spring Data JPA.
Database Migration on Startup
Flyway database migration is automatically triggered on startup if "org.flywaydb:flyway-core" dependency is present in the application's classpath.
The migration script naming convention is V<version>_<name>.sql where:
- <version> is an underscore separated version, such as "1" or "1_2".
- <name> ?
The migration script default location is "classpath:db/migration[/{vendor}]", but it can be overridden with the "spring.flyway.locations" property, which should contain a comma-separated list of one or more classpath: or filesystem: locations.
spring.flyway.locations=classpath:db/migration,filesystem:/opt/migration
The {vendor} placeholder is set according to the type of database.
Flyway requires a schema history table to drive migration off of. If the schema history table is not found, the migration fails with:
Error creating bean with name 'flywayInitializer' defined in class path resource ...: Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" without schema history table! Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
Configuration
Organizatorium
- Disable flyway support: