728x90
반응형
Spring Boot는 데이터베이스 마이그레이션을 통해 데이터베이스 스키마의 버전을 관리하고 업그레이드하는 기능을 제공합니다. 이 글에서는 Spring Boot에서 데이터베이스 마이그레이션을 설정하는 방법과 주요 기능을 알아보고, 간단한 예제를 통해 데이터베이스 스키마를 관리하는 방법을 살펴보겠습니다.
데이터베이스 마이그레이션 기능 소개: Spring Boot는 Flyway 또는 Liquibase를 통해 데이터베이스 마이그레이션을 지원합니다. 이를 통해 데이터베이스 스키마의 버전을 관리하고 변경 사항을 적용할 수 있습니다.
Flyway 설정:
- Flyway는 SQL 기반의 마이그레이션 스크립트를 사용하여 데이터베이스 마이그레이션을 수행합니다.
- application.properties 또는 application.yml 파일을 통해 데이터베이스 연결 정보와 마이그레이션 스크립트 위치를 설정할 수 있습니다.
728x90
Liquibase 설정:
- Liquibase는 XML 또는 YAML 형식의 마이그레이션 설정 파일을 사용하여 데이터베이스 마이그레이션을 수행합니다.
- changelog 파일을 작성하여 데이터베이스 변경 사항을 정의하고 적용할 수 있습니다.
데이터베이스 마이그레이션 예제 코드:
Flyway 예제:
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL
);
Liquibase 예제:
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
<changeSet id="createTable-users" author="you">
<createTable tableName="users">
<column name="id" type="INT" autoIncrement="true">
<constraints primaryKey="true"/>
</column>
<column name="username" type="VARCHAR(50)">
<constraints nullable="false"/>
</column>
<column name="password" type="VARCHAR(100)">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>
Spring Boot와 데이터베이스 마이그레이션 통합:
- Spring Boot는 application.properties 또는 application.yml 파일을 통해 데이터베이스 마이그레이션을 자동으로 실행할 수 있습니다.
- spring.flyway.enabled 또는 spring.liquibase.enabled 속성을 사용하여 마이그레이션을 활성화할 수 있습니다.
Spring Boot의 데이터베이스 마이그레이션 기능을 사용하면 데이터베이스 스키마의 버전을 관리하고 변경 사항을 적용할 수 있습니다. 이를 통해 애플리케이션의 데이터베이스 스키마를 쉽게 관리하고 유지할 수 있으며, 팀원 간의 협업도 용이해집니다.
반응형
728x90
반응형
'Spring' 카테고리의 다른 글
| Spring Boot에서 프로파일 관리 기능 활용하기 (0) | 2024.03.08 |
|---|---|
| Spring Boot를 활용한 RESTful API 개발하기 (0) | 2024.03.07 |
| Spring Boot에서 웹 소켓 기능 활용하기 (0) | 2024.03.07 |
| Spring Boot에서 국제화(Internationalization) 및 로케일(Locale) 처리 기능 활용하기 (0) | 2024.03.07 |
| Spring Boot에서 이벤트 처리 기능 활용하기 (0) | 2024.03.07 |