Liquibaseは、オープンソースのデータベースバージョン管理ツールであり、データベースのバージョン追跡、更新、およびロールバックをサポートします。
前提条件
- Liquibaseをダウンロードし、解凍してインストールします。
- 公式WebサイトからMySQL JDBCドライバーをダウンロードし、
mysql-connector-j-x.x.x.jarファイルを取得します。
使用例
ダウンロードした
mysql-connector-j-x.x.x.jarをLiquibaseのlibディレクトリに配置します。liquibase.properties設定ファイルを新規作成し、以下の内容を記述します:
url: jdbc:mysql://x.x.x.x:3306/test username: username password: ***** classpath: lib/mysql-connector-j-8.3.0.jar以下のliquibaseコマンドを実行して、データベースの現在の構造状態のスナップショットを生成します。バージョンによって実際のパラメータが異なる場合があるため、公式ドキュメントをご参照ください。
./liquibase --changeLogFile=mydatabase_changelog.xml generateChangeLog新しいテーブルを作成し、新しい
dbchangelog.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" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-4.5.xsd"> <changeSet author="BobR" id="myIDNumber123"> <createTable tableName="actor"> <column autoIncrement="true" name="id" type="INTEGER"> <constraints nullable="false" primaryKey="true" primaryKeyName="actor_pkey"/> </column> <column name="firstname" type="VARCHAR(255)"/> <column name="lastname" type="VARCHAR(255)"/> <column name="twitter" type="VARCHAR(15)"/> </createTable> </changeSet> </databaseChangeLog>上記の設定は、actorテーブルを作成する変更を記述しています。この変更を実行します。
./liquibase update --changeLogFile=dbchangelog.xml変更が成功した後、ロールバック操作を試して、前のバージョンに戻すこともできます。
./liquibase rollbackCount 1 --changelog-file=dbchangelog.xml