본문 바로가기
카테고리 없음

liquibase - DB 형상관리 툴 (MARIADB)

by forkballpitch 2024. 1. 22.
728x90
728x90

build.gradle에 아래와 같이 추가해주고

//liquibase
implementation 'org.liquibase:liquibase-core'

yaml에

liquibase:
  change-log: classpath:/db/changelog/db.changelog-master.xml

resource쪽에 아래와 같이 추가해준다.

/db/changelog/db.changelog-master.xml

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.7"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.7
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.7.xsd">

    <changeSet author="yuri" id="c1">

<!--        <createTable tableName="students">-->

<!--            <column autoIncrement="true" name="id" type="bigint">-->
<!--                <constraints primaryKey="true" primaryKeyName="pk_student"/>-->
<!--            </column>-->

<!--            <column name="fullname" type="varchar(255)">-->
<!--                <constraints nullable="false"/>-->
<!--            </column>-->

<!--        </createTable>-->

<!--        <createTable tableName="exams">-->

<!--            <column autoIncrement="true" name="id" type="bigint">-->
<!--                <constraints primaryKey="true" primaryKeyName="pk_exam"/>-->
<!--            </column>-->

<!--            <column name="name" type="varchar(255)">-->
<!--                <constraints nullable="false" unique="true"/>-->
<!--            </column>-->
<!--            <column name="mark" type="smallint"/>-->
<!--            <column name="student_id" type="bigint"/>-->

<!--        </createTable>-->

<!--        <addForeignKeyConstraint-->
<!--                constraintName="fk_student_exam" baseTableName="exams"-->
<!--                baseColumnNames="student_id" referencedTableName="students"-->
<!--                referencedColumnNames="id"/>-->

    </changeSet>

</databaseChangeLog>

 

 

 

liquibase --changeLogFile="./liquibase/changelog.xml" --url="jdbc:mariadb://10.40.235.110:30311/phm" --username="root" --password="Cms12345!" updateSQL > output.sql

이런 명령어로 데이터를 뽑아낼 수도 있고, 테이블 구조도 뽑아낼수도 있다.

테이블을 전부 지우고, 다시 만들려고 할 때 jpa ddl은 두고 liquibase 로 변경한다

728x90
728x90