상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Gradle에서 데이터베이스 마이그레이션을 수행하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Gradle에서 데이터베이스 마이그레이션을 수행하는 방법은 여러 가지가 있으며, 주로 <a href='https://sangseek.com/sangseeks/Flyway/ko'>Flyway</a>나 <a href='https://sangseek.com/sangseeks/Liquibase/ko'>Liquibase</a>와 같은 라이브러리를 사용하여 관리합니다. 이 두 도구는 데이터베이스 스키마의 버전 관리를 쉽게 해주며, 데이터베이스의 변경 사항을 코드로 관리할 수 있도록 도와줍니다. 아래에서는 Gradle을 사용하여 Flyway와 Liquibase를 설정하고 사용하는 방법에 대해 자세히 설명하겠습니다. 1. Flyway를 사용한 데이터베이스 마이그레이션 1.1. <a href='https://sangseek.com/sangseeks/Gradle 설정/ko'>Gradle 설정</a> 먼저, `build.gradle` 파일에 Flyway 의존성을 추가합니다. ```groovy plugins { id 'org.flywaydb.flyway' version '9.0.0' // Flyway 플러그인 추가 } dependencies { implementation 'org.flywaydb:flyway-core:9.0.0' // Flyway 의존성 추가 implementation 'org.postgresql:postgresql:42.2.20' // 데이터베이스 드라이버 (예: P<a href='https://sangseek.com/sangseeks/ostgreSQL/ko'>ostgreSQL</a>) } ``` 1.2. Flyway 설정 `build.gradle` 파일에 Flyway 설정을 추가합니다. ```groovy flyway { url = 'jdbc:postgresql://localhost:5432/mydb' // 데이터베이스 URL user = 'myuser' // 데이터베이스 사용자 password = 'mypassword' // 데이터베이스 비밀번호 locations = ['filesystem:src/main/resources/db/migration'] // 마이그레이션 파일 위치 } ``` 1.3. 마이그레이션 <a href='https://sangseek.com/sangseeks/파일 생성/ko'>파일 생성</a> 마이그레이션 파일은 `src/main/resources/db/migration` 디렉토리에 위치해야 하며, 파일 이름은 `V1__Initial.sql`, `V2__Add_table.sql`과 같은 형식을 따라야 합니다. 예를 들어, `V1__Initial.sql` 파일의 내용은 다음과 같습니다. ```sql <a href='https://sangseek.com/sangseeks/CREATE TABLE/ko'>CREATE TABLE</a> users ( id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL ); ``` 1.4. 마이그레이션 실행 Gradle을 사용하여 마이그레이션을 실행하려면 다음 명령어를 사용합니다. ```bash ./gradlew flywayMigrate ``` 이 명령어는 데이터베이스에 연결하여 마이그레이션을 수행합니다. 2. Liquibase를 사용한 데이터베이스 마이그레이션 2.1. Gradle 설정 Liquibase를 사용하기 위해 `build.gradle` 파일에 Liquibase 의존성을 추가합니다. ```groovy plugins { id 'org.liquibase.gradle' version '2.0.4' // Liquibase 플러그인 추가 } dependencies { implementation 'org.liquibase:liquibase-core:4.4.3' // Liquibase 의존성 추가 implementation 'org.postgresql:postgresql:42.2.20' // 데이터베이스 드라이버 } ``` 2.2. Liquibase 설정 `build.gradle` 파일에 Liquibase 설정을 추가합니다. ```groovy liquibase { activities { main { changeLogFile 'src/main/resources/db/changelog/db.changelog-master.xml' // 변경 로그 파일 위치 url 'jdbc:postgresql://localhost:5432/mydb' // 데이터베이스 URL username 'myuser' // 데이터베이스 사용자 password 'mypassword' // 데이터베이스 비밀번호 } } runList = 'main' // 실행할 활동 목록 } ``` 2.3. 변경 로그 파일 생성 Liquibase는 XML, YAML, JSON 등 다양한 형식의 변경 로그 파일을 지원합니다. XML 형식의 예시는 다음과 같습니다. `src/main/resources/db/changelog/db.changelog-master.xml` 파일의 내용: ```xml <?xml version="1.0" encoding="UTF-8"?> <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="1" author="author"> <createTable tableName="users"> <column name="id" type="int"> <constraints primaryKey="true" <a href='https://sangseek.com/sangseeks/null/ko'>null</a>able="false"/> </column> <column name="username" type="varchar(50)"> <constraints nullable="false"/> </column> <column name="password" type="varchar(50)"> <constraints nullable="false"/> </column> </createTable> </changeSet> </databaseChangeLog> ``` 2.4. 마이그레이션 실행 Liquibase 마이그레이션을 실행하려면 다음 명령어를 사용합니다. ```bash ./gradlew update ``` 이 명령어는 설정된 데이터베이스에 연결하여 변경 로그 파일에 정의된 마이그레이션을 수행합니다. 결론 Gradle을 사용하여 데이터베이스 마이그레이션을 수행하는 방법은 Flyway와 Liquibase 두 가지 주요 도구를 통해 가능합니다. 두 도구 모두 데이터베이스 스키마의 버전 관리를 용이하게 하며, 코드로 데이터베이스 변경 사항을 관리할 수 있도록 도와줍니다. 선택한 도구에 따라 설정 및 사용 방법이 다르므로, 프로젝트의 요구 사항에 맞는 도구를 선택하여 사용하면 됩니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기