티스토리 뷰
LiquibaseConnectionDetails란?
LiquibaseConnectionDetails는 Spring Boot에서 Liquibase의 데이터베이스 연결 정보를 제공하는 인터페이스입니다. Liquibase는 데이터베이스 스키마 변경 관리를 위한 도구이며, Spring Boot와 통합하여 사용될 때 LiquibaseConnectionDetails를 활용하여 데이터베이스 연결 정보를 설정할 수 있습니다.
주요 기능
- 데이터베이스 연결 정보 제공
- LiquibaseConnectionDetails는 Liquibase가 사용할 JDBC URL, 사용자명, 비밀번호 등의 정보를 제공할 수 있습니다.
- 기본적으로 Spring Boot의 spring.datasource 설정을 사용하지만, LiquibaseConnectionDetails를 구현하여 별도의 설정을 적용할 수도 있습니다.
- 기본 데이터 소스와 분리 가능
- 일반적으로 Liquibase는 애플리케이션의 기본 데이터 소스를 사용하지만, Liquibase만을 위한 별도의 연결 정보를 지정할 수 있습니다.
- 예를 들어, 애플리케이션이 여러 데이터베이스를 사용할 경우, Liquibase용 데이터베이스를 따로 지정할 수 있습니다.
- Spring Boot 3.1부터 도입
- LiquibaseConnectionDetails는 Spring Boot 3.1 버전부터 지원되는 기능입니다.
- 이를 통해 Liquibase의 데이터베이스 설정을 더 유연하게 관리할 수 있습니다.
사용 방법
1. 기본적으로 application.properties 또는 application.yml에서 설정
별도의 설정이 없으면 spring.datasource에 설정된 데이터베이스 연결 정보를 사용합니다.
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=1234
spring.liquibase.change-log=classpath:/db/changelog/db.changelog-master.xml
2. Liquibase 전용 데이터베이스 설정하기
LiquibaseConnectionDetails를 활용하면 Liquibase만을 위한 데이터베이스 연결 정보를 설정할 수 있습니다.
이를 위해 LiquibaseConnectionDetails 인터페이스를 직접 구현할 수도 있습니다.
import org.springframework.boot.autoconfigure.liquibase.LiquibaseConnectionDetails;
import org.springframework.stereotype.Component;
@Component
public class CustomLiquibaseConnectionDetails implements LiquibaseConnectionDetails {
@Override
public String getJdbcUrl() {
return "jdbc:mysql://localhost:3306/liquibase_db";
}
@Override
public String getUsername() {
return "liquibase_user";
}
@Override
public String getPassword() {
return "secure_password";
}
}
이렇게 하면 애플리케이션의 기본 데이터 소스와는 다른 데이터베이스를 Liquibase에 사용할 수 있습니다.
정리
- LiquibaseConnectionDetails는 Liquibase에서 사용할 데이터베이스 연결 정보를 제공하는 인터페이스입니다.
- Spring Boot 3.1부터 지원되며, 기본적으로 spring.datasource 설정을 따릅니다.
- 별도의 LiquibaseConnectionDetails 구현체를 만들면 Liquibase만을 위한 별도 데이터베이스 설정이 가능합니다.
- 데이터베이스 마이그레이션을 효율적으로 관리하고 싶은 경우 유용하게 활용할 수 있습니다.