17
votes

Is it possible for new Flyway migrations to be generated by JPA/Hibernate's automatic schema generation when a new model / field etc. are added via Java code.

It would be useful to capture the auto-generated SQL and save it directly to a new Flyway migration, for review / editing / committing to a project repository.

Thank you in advance for any assistance or enlightenment you can offer.

2
Some relevant discussions here; stackoverflow.com/questions/18536256/… - JamieB
Thank you @JamieB, we ended up just dealing with it as a chore. Crafting the SQL for each migration by hand. Still evaluation between flyway and maybe Liquibase. - ocodo

2 Answers

6
votes

Flyway doesn't have built-in support for diff, I use liquidbase within a maven spring boot project and changelogs can be created from JPA/hibernate changes by using:

mvn liquibase:diff

All of the options for liquibase diff are located here: http://www.liquibase.org/documentation/maven/maven_diff.html

5
votes

If your IDE of choice is IntelliJ IDEA, I'd recommend using the JPA Buddy plugin to do this. It can generate Flyway migrations by comparing your Java model to the target DB.

You can use it to keep your evolving model and your SQL scripts in sync. Also, it can create the init script if your DB is empty.

Once you have it installed and have Flyway as your Maven/Gradle dependency, you can generate a migration like this: Generating Flyway migration with JPA Buddy