Cấu hình Flyway với Spring Data R2DBC trong Spring Boot

Trong bài viết trước, mình đã hướng dẫn các bạn cấu hình Flyway với ứng dụng Spring Boot sử dụng Spring Data JDBC. Nếu ứng dụng Spring Boot của các bạn đang sử dụng Spring Data R2DBC thì Flyway sẽ không work.

Ví dụ mình có một Spring Boot project với Flyway, Spring Data R2DBC Starter, R2DBC PostgreSQL dependencies như sau:

Mình sẽ khai báo lại cấu hình như mình đã làm trong bài viết Sử dụng Flyway trong Spring Boot, bao gồm:

  • Tập tin SQL V2023.07.09.00000__Init.sql nằm trong thư mục src/main/resources/db/migration với nội dung như sau:

  • Cấu hình datasource trong tập tin application.properties:

  • Và cấu hình database cho Spring Data R2DBC nữa:

Lúc này, nếu các bạn chạy ứng dụng, các bạn sẽ thấy Flyway không hoạt động.

Nó không tự động khởi tạo và pick up tập tin SQL mà mình đã định nghĩa trong thư mục src/main/resources/db/migration như chúng ta mong muốn.

Để Flyway có thể làm việc bình thường trong ứng dụng Spring Boot có sử dụng Spring Data R2DBC, các bạn có thể sử dụng một số properties bắt đầu với “spring.flyway”. Cụ thể như sau:

Chỉ đơn giản vậy thôi các bạn.

Các bạn cũng có thể sử dụng những properties trên cho ứng dụng ví dụ trong bài viết Sử dụng Flyway trong Spring Boot nhưng vì Flyway có thể sử dụng lại datasource mà chúng ta đã khai báo cho Spring Data JDBC nên chúng ta không cần khai thêm những properties này.

Chạy lại ứng dụng, các bạn sẽ thấy Flyway work như đã từng:

Add Comment