Liquibaseは、オープンソースのデータベースバージョン管理ツールです。データベーススキーマのバージョン追跡、更新、およびロールバックをサポートしています。
前提条件
- Liquibaseをダウンロードし、解凍してインストールしていること。
- 公式WebサイトからMySQL JDBCドライバーをダウンロードし、
mysql-connector-j-x.x.x.jarファイルを取得していること。
- OceanBaseデータベースがインストール済みで、MySQLモードのテナントが作成されていること。
バージョンの互換性
OceanBaseのV4.2.3以降のバージョンを使用することを推奨します。これにより、より優れた統合エクスペリエンスを確保できます。
操作手順
ステップ1:データベース接続文字列を取得する
OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。例:
obclient -h$host -P$port -u$user_name -p$password -D$database_name
パラメータの説明:
$host:OceanBaseデータベースへの接続IPアドレスを提供します。OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)接続方式はODPアドレスを使用し、直接接続方式はOBServerノードのIPアドレスを使用します。$port:OceanBaseデータベースへの接続ポートを提供します。ODP接続方式のデフォルトポートは2883で、ODPデプロイ時にカスタマイズ可能です。直接接続方式のデフォルトポートは2881で、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。$database_name:アクセス対象のデータベース名。注意
テナントに接続するユーザーに、データベースに対する
CREATE、INSERT、DROP、およびSELECT権限が付与されていなければなりません。ユーザー権限の詳細については、MySQLモードの権限分類を参照してください。user_name:形式は ユーザー@テナント#クラスタ名 または ユーザー名@SERVICE:サービス名 です。ユーザー@テナント#クラスタ名 の形式を使用する場合、デフォルトのテナントは'sys'、管理者ユーザーは'root'です。データベースに直接接続する場合、クラスタ名を省略できますが、ODP接続の場合は入力する必要があります。$password:アカウントのパスワード。
接続文字列の詳細については、OBClientを使用してOceanBaseテナントに接続するを参照してください。
例:
obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest
ステップ2:Liquibaseを使用する際の参考例
Liquibaseのlibディレクトリ内にJDBCドライバーを配置する
仮想マシン内で、解凍したLiquibaseフォルダを見つけ、
libディレクトリに移動します。ダウンロードしたmysql-connector-j-x.x.x.jarファイルをこのディレクトリ内にコピーします。または、コマンドラインを使用します:
mv path/to/mysql-connector-j-x.x.x.jar path/to/liquibase/lib/設定ファイルの新規作成
Liquibaseのルートディレクトリ内に、
liquibase.propertiesという名前の設定ファイルを新規作成します。任意のテキストエディター(例えばnano、vim、またはgedit)を使用してこのファイルを作成し、次の内容を記述します:url: jdbc:mysql://xxx.xxx.xxx.xxx:2881/test username: your_username password: your_password classpath: lib/mysql-connector-j-8.3.0.jarxxx.xxx.xxx.xxxをOceanBaseデータベースのホストアドレスに置き換え、データベースのポート番号、ユーザー名、およびパスワードを入力してください。データベースのアドレス、ポート番号、ユーザー名、およびパスワードの取得については、ステップ1を参照してください。データベースの現在の構造状態のスナップショットを生成する
Liquibaseのルートディレクトリに移動し、以下のコマンドを実行して、現在のデータベース構造のスナップショットを生成します:
./liquibase --changeLogFile=mydatabase_changelog.xml generateChangeLog使用しているLiquibaseのバージョンに応じて、実際のパラメータが異なる場合があります。Liquibase公式ドキュメントを参照してください。_ga=2.193221357.1372013942.1726823585-713905107.1726823585)。
新しいテーブルの作成
Liquibaseのルートディレクトリに、
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
詳細情報
Liquibaseの使用中に問題が発生した場合は、Liquibase公式ドキュメントを参照することを推奨します。