【Liquibase】DB 작성·테이블 정의 변경
9301 단어 Liquibasejava8spring-boot
신규 스타터 프로젝트 작성
Liquibase와 MySQL 선택
application.properties에 DB 정보 넣기
MySQL에서 "testdatabase"라는 데이터베이스 만들기
spring.datasource.url=jdbc:mysql://localhost:3306/testDataBase?serverTimezone=UTC&createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=system
spring.jpa.database=MYSQL
spring.liquibase.change-log=classpath:db/db.changelog-master.yaml
빌드 종속성 추가
build.gradle의 dependencies에 spring DATA JPA 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.liquibase:liquibase-core'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
처음 읽을 수 있는 yaml 파일 만들기
Sample\src\main\resources\db 아래에 db.changelog-master.yaml을 넣습니다.
(application.properties에 작성된 파일 이름)
내용은 db.changelog 아래에 둔 파일명을 기재
databaseChangeLog:
- include:
file: db/changelog/a.yaml
이제 db.changelog 아래에 yaml 파일이 자동으로 생성됩니다.
테이블 정의
방금 자동 생성된 yaml 파일에 테이블 정의를 기재해 간다
databaseChangeLog:
- changeSet:
id: 1
author: aaa
changes:
- createTable:
tableName: user
columns:
- column:
name: id
type: int
autoIncrement: true
constraints:
primaryKey: true
nullable: false
- column:
name: firstname
type: varchar(50)
- column:
name: lastname
type: varchar(50)
constraints:
nullable: false
- column:
name: state
type: char(2)
※yaml 파일은 반드시 반각 스페이스로 들여쓰기
실행
a5m2에서 testdatabase라는 DB와 user 테이블이 생성되었는지 확인
테이블 정의가 변경된 경우
◆ 컬럼 추가
db.changelog-master.yaml에 파일 이름 추가
databaseChangeLog:
- include:
file: db/changelog/a.yaml
- include:
file: db/changelog/b.yaml
자동 생성 된 db.changelog 아래의 yaml 파일에 ALTER 문 작성
databaseChangeLog:
- changeSet:
id: 2
comment: tuika
author: takahashi
changes:
- addColumn:
catalogName: testdatabase
columns:
- column:
name: age
remarks: memo
type: bigint
schemaName: public
tableName: user
※databaseChangeLog의 id는 고유 키이므로 중복하지 않는 것
실행 후 A5M2 확인
databaseChangeLog에 b.yaml 데이터가 삽입됨
age 열이 추가되었습니다.
Reference
이 문제에 관하여(【Liquibase】DB 작성·테이블 정의 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OsakaKaiyukan/items/11a5ae430c89df97c78a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)