เพื่อลดเวลาการศึกษา script ของ Liquibase ผมจะใช้ Flyway
เพิ่ม Dependency ใน pom.xml
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>
ปิด Auto-DDL ของ Hibernate
ใน /src/main/resources/application.properties ให้เปลี่ยนจาก update เป็น none เพื่อให้ Flyway เป็นตัวจัดการตารางแทน
# ปิดการสร้างตารางอัตโนมัติของ Hibernate เพื่อใช้ Flyway แทน
spring.jpa.hibernate.ddl-auto=none
# เปิดใช้งาน Flyway
spring.flyway.enabled=true
spring.flyway.baseline-on-migrate=true
ข้อดีของการทำแบบนี้
- Versioning: ทุกครั้งที่คุณแก้ Database คุณแค่สร้างไฟล์
V2__xxx.sql,V3__xxx.sqlเมื่อรัน App มันจะเช็คและ Migrate ให้เองอัตโนมัติ - Teamwork: เพื่อนร่วมทีมแค่ Pull Code ไปรัน Database ก็จะตรงกันทันที
อ่านเพิ่มเติม
