https://github.com/shigenobu/magentadesk
Get MariaDB / MySQL Table Difference, And Reflect.
https://github.com/shigenobu/magentadesk
diff java mariadb mysql reflect sync
Last synced: 5 months ago
JSON representation
Get MariaDB / MySQL Table Difference, And Reflect.
- Host: GitHub
- URL: https://github.com/shigenobu/magentadesk
- Owner: shigenobu
- License: apache-2.0
- Created: 2019-05-14T03:37:20.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2026-01-09T04:05:25.000Z (6 months ago)
- Last Synced: 2026-01-17T20:16:42.053Z (6 months ago)
- Topics: diff, java, mariadb, mysql, reflect, sync
- Language: Java
- Homepage:
- Size: 1.58 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE
Awesome Lists containing this project
README
# magentadesk - Get MariaDB / MySQL Table Difference, And Reflect.
[](https://opensource.org/licenses/Apache-2.0)
### 概要
MariaDBまたはMySQLの同一ホスト内の2つのデータベースの差分を取り、同期を行います。
### システム要件
* JDK 17 以上
* MariaDB 10.6, 10.11, 11.4, 11.8, 12.0, 12.1
* MySQL 8.0.31 - 8.0.44, 8.4
### コマンド
標準入力にて、所定フォーマットのJSON文字列を渡すと、
標準出力にて、結果のJSONが取得できます。
以下は最も単純なコマンド例となります。
CLI版のドキュメントは[こちら](cli/README.ja.md)。
echo '${json}' | java -jar magentadesk-cli.jar --mode=${mode}
(引数)
|名称|値|説明|
|---|---|---|
|--mode|(必須)diff, sync または maintenance|diffは差分取得、syncは取得した差分の反映、maintenanceは比較元・比較先の組み合わせのメンテナンス状態を制御します|
|--logPath|ログを出力するファイルパス|stdoutとすると標準出力へ、stderrとすると標準エラー出力に出力します|
|--addSeconds|ログに記載される時刻を補正する数字|デフォルトは60x60x9、つまり日本時間となります|
(フル)
echo '${json}' \
| [MD_ENV=${mdEnv}] \
[MD_OUTPUT=${mdOutput}] \
[MD_LIMIT_LENGTH=${mdLimitLength}] \
[MD_LIMIT_MISMATCH_COUNT=${mdLimitMismatchCount}] \
[MD_HOME=${mdHome}] \
[MD_WAIT=${mdWait}] \
java -jar magentadesk-cli.jar --mode=${mode} [--logPath=${logPath}] [--addSeconds=${addSeconds}]
### WEB
標準入力不要で、HTTPサーバが立ち上がります。
以下は最も単純なコマンド例となります。
WEB版のドキュメントは[こちら](web/README.ja.md)。
java -jar magentadesk-web.jar
|名称|値|説明|
|---|---|---|
|--logPath|ログを出力するファイルパス|stdoutとすると標準出力へ、stderrとすると標準エラー出力に出力します。|
|--addSeconds|ログに記載される時刻を補正する数字|デフォルトは60x60x9、つまり日本時間となります。|
|--webHost|待受ホスト|デフォルは0.0.0.0。|
|--webPort|待受ポート|デフォルは8710。|
(フル)
[MD_ENV=${mdEnv}] \
[MD_OUTPUT=${mdOutput}] \
[MD_LIMIT_LENGTH=${mdLimitLength}] \
[MD_LIMIT_MISMATCH_COUNT=${mdLimitMismatchCount}] \
[MD_HOME=${mdHome}] \
[MD_WAIT=${mdWait}] \
java -jar magentadesk-web.jar [--logPath=${logPath}] [--addSeconds=${addSeconds}] \
[--webHost=${webHost}] [--webPort=${webPort}]
### 環境変数
| 名称 | 説明 |
|-------------------------|--------------------------------------------------------------------------|
| MD_ENV | DEBUGを指定すると、詳細なログを出力します。 |
| MD_OUTPUT | PRETTYを指定すると、標準出力の結果のJSONが整形されます。 |
| MD_LIMIT_LENGTH | diffの実行結果の値において、このバイト数を超えると、ハッシュ化されます。デフォルト10000です。 |
| MD_LIMIT_MISMATCH_COUNT | diffの実行結果の'mismatchRecordTables.records'の件数がこれを超えると、空になります。デフォルト10000です。 |
| MD_HOME | 指定しないと、${HOME}/.magentadeskとなり、ここにsync時の任意コマンド実行時の一時ファイルが格納されます。 |
| MD_WAIT | WAITを指定すると、ロックを取得できるまで待ちます。デフォルトはNOWAITです。
### 注意事項
* チェックサムを用いているため、レコード差分が多いほど、差分抽出に時間がかかります
* 大量レコード(100万以上)あると、差分抽出に時間がかかります
* 主にマスターデータといった類のものが対象となることを想定しています