Mình đã giới thiệu với các bạn về Flyway để hiện thực database migration. Đối với các ứng dụng Spring Boot muốn sử dụng Flyway thì việc integrate này rất dễ dàng vì Spring Boot đã hỗ trợ. Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này các bạn nhé!
Đầu tiên, mình sẽ tạo mới một Spring Boot project với Flyway, Spring Data JDBC và PostgreSQL dependencies như sau:
Kết quả:
Nếu kiểm tra thư mục src/main/resources trong project vừa tạo, các bạn sẽ thấy có một thư mục là db/migration. Đây chính là thư mục mặc định mà chúng ta sẽ chứa các tập tin SQL để Spring Boot với Flyway làm database migration đó các bạn!
Bây giờ, để làm ví dụ, mình sẽ tạo mới một tập tin SQL V2021.10.20.00000__Init.sql nằm trong thư mục src/main/resources/db/migration:
để tạo mới table student như sau:
1 2 3 4 |
CREATE TABLE student ( ID INT PRIMARY KEY, name VARCHAR(250) NOT NULL ); |
Việc tiếp theo chúng ta cần làm là cấu hình Datasource trong tập tin application.properties, ví dụ của mình như sau:
1 2 3 |
spring.datasource.url=jdbc:postgresql://localhost:5432/flyway_example spring.datasource.username=khanh spring.datasource.password=1 |
với flyway_example là tên database ví dụ của mình.
Bây giờ, nếu các bạn chạy ứng dụng và truy cập đến database trên, các bạn sẽ thấy kết quả như sau:
Table flyway_schema_history và cả table student mà chúng ta định nghĩa trong tập tin SQL đã được tạo.
Các bạn có thể thấy, việc sử dụng Flyway trong ứng dụng Spring Boot rất đơn giản, không tốn nhiều effort phải không các bạn?