Sử dụng Liquibase trong Spring Boot

Trong bài viết trước, mình đã hướng dẫn các bạn cách sử dụng hiện thực database migration với Liquibase trong Spring MVC. Vậy với Spring Boot thì sao? Trong bài viết này, mình sẽ hướng dẫn các bạn làm điều này! Đơn giản lắm các bạn!

Đầu tiên, mình sẽ tạo mới một Spring Boot project:

Sử dụng Liquibase trong Spring Boot

với Liquibase Migration, Spring Data JDBC và PostgreSQL dependencies như sau:

Sử dụng Liquibase trong Spring Boot

Mục đích mình sử dụng Spring Data JDBC là để cấu hình dataSource cho Liquibase và mình sẽ sử dụng PostgreSQL cho bài viết này.

Kết quả:

Sử dụng Liquibase trong Spring Boot

Nếu như các bạn để ý thì sẽ thấy Spring Starter Project trong Spring Tool Suite đã generate thêm thư mục src/main/resources/db/changelog. Đây là thư mục chứa tập tin changelog của Liquibase đó các bạn.

Như các bạn đã biết, để Liquibase có thể làm việc được, chúng ta cần khai báo dataSource và đường dẫn tới tập tin changelog nên bây giờ mình sẽ đi định nghĩa từng cái một.

Chúng ta sẽ định nghĩa thông tin dataSource cho Liquibase trong tập tin application.properties.

Nếu bây giờ, các bạn chạy ứng dụng này, các bạn sẽ thấy lỗi như sau:

Mặc định thì Spring Boot sẽ đọc tập tin changelog của Liquibase được định nghĩa trong tập tin YAML, trong thư mục src/main/resouces/db/changelog/, tên là db.changelog-master.yaml. Các bạn có thể thay đổi cấu hình mặc định này bằng cách sử dụng properties spring.liquibase.change-log.

Mình sẽ định nghĩa một tập tin changelog với định dạng XML trong thư mục src/main/resources/db/changelog với nội dung như sau:

Cấu hình property spring.liquibase.change-log trong tập tin application.properties:

Bây giờ, chạy lại ứng dụng, kiểm tra database, các bạn sẽ thấy kết quả như sau:

Sử dụng Liquibase trong Spring Boot

Add Comment