Skip to content

Files

Latest commit

 

History

History

HibernateSpringBootFlywayPostgreSqlSchema

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

How To Migrate Schema Using Flyway In PostgreSQL - Use The Default Database postgres And Schema Created Via spring.flyway.schemas

Note: For production, don't rely on hibernate.ddl-auto (or counterparts) to export schema DDL to the database. Simply remove (disable) hibernate.ddl-auto or set it to validate. Rely on Flyway or Liquibase.

Description: This application is an example of migrating a schema (bookstore) created by Flyway via spring.flyway.schemas in the default postgres database. In this case, the entities should be annotated with @Table(schema = "bookstore").

Key points:

  • for Maven, in pom.xml, add the Flyway dependency
  • remove (disable) spring.jpa.hibernate.ddl-auto or set it to validate
  • in application.properties, set the JDBC URL as follows: jdbc:postgresql://localhost:5432/postgres
  • in application.properties, add spring.flyway.schemas=bookstore, where bookstore is the schema that should be created by Flyway in the postgres database (feel free to add your own database name)
  • each entity that should be stored in this database should be annotated with, @Table(schema = "bookstore")
  • each SQL file containing the schema update add it in classpath:db/migration
  • each SQL file name it as V1.1__Description.sql, V1.2__Description.sql, ...

If you need a deep dive into the performance recipes exposed in this repository then I am sure that you will love my book "Spring Boot Persistence Best Practices"If you need a hand of tips and illustrations of 100+ Java persistence performance issues then "Java Persistence Performance Illustrated Guide" is for you.