はじめに
Kintone へのシステム移行を検討しているが、既存の MySQL データベースとのデータ同期に悩んでいませんか?
本記事では、PHP で開発されたオープンソースのデータ同期ツール「mysql-to-kintone-sync」を紹介します。
このツールを使用することで、MySQL のデータを Kintone に同期し、移行期間中の並行運用をスムーズに行うことが可能になります。
概要
「mysql-to-kintone-sync」は、MySQL データベースと Kintone アプリ間でデータを同期するための PHP スクリプトです。
主な機能は以下の通りです:
- MySQL からデータを取得し、Kintone に送信
- Kintone に新規レコードを作成、または既存レコードを更新(ユニークキーに基づく)
- 同期処理のログをコンソールに出力
このツールは、MySQL から Kintone への一方向の同期を行います。
Kintone 側での変更は MySQL に反映されません。
また、MySQL で削除されたレコードは Kintone には残ります。
利用シーン
このツールは、以下のようなケースでの利用を想定しています:
- 既存の PHP + MySQL アプリケーションを Kintone に段階的に移行する際のデータ同期
- MySQL の特定のテーブルを Kintone アプリとして再構築し、並行運用する場合
- Kintone へのデータ移行を自動化したい場合
特に、テーブル数が多く一括移行が難しい場合に、MySQL と Kintone のデータを同期させながら段階的に移行を進める際に有効です。
動作環境
- PHP 7.0 以上(PHP 8.0.30 で動作確認済み)
- MariaDB(MariaDB 10.6.21 で動作確認済み)
- Composer(依存関係の管理に使用、任意)
- MySQL データベースへのアクセス権
- API アクセス可能な Kintone アカウント
インストールと設定
-
リポジトリをクローン:
git clone https://github.com/yakiimo-bsp/mysql-to-kintone-sync.git
-
必要に応じて Composer で依存関係をインストール:
composer install
-
設定ファイル(
.env
)を作成し、以下の情報を入力:cp .env.example .env
- MySQL の接続情報(ホスト、ユーザー名、パスワード、データベース名)
- Kintone のドメイン、API トークン、アプリ ID
- 同期対象のテーブル名と対応する Kintone フィールド
# データベース接続 MYSQL_SERVERNAME=your_mysql_server MYSQL_USERNAME=your_mysql_username MYSQL_PASSWORD=your_mysql_password MYSQL_DBNAME=your_database_name # Kintone設定 KINTONE_DOMAIN=your_kintone_domain
使用方法
設定が完了したら、以下のコマンドで同期を実行します:
php mysql-to-kintone-sync.php
スクリプトはMySQLデータベースに接続し、.env
ファイルで定義されたクエリに基づいてデータを取得し、Kintoneに送信します。
処理の進捗や結果はコンソールに出力されます。
ロギング
すべての操作はコンソールにログ出力されます。エラーや成功メッセージの出力を監視してください。
注意点
- Kintone 側でのデータ変更は MySQL に反映されません
- MySQL で削除されたレコードは Kintone には残ります
- 大量のデータを同期する場合、Kintone API の制限に注意が必要です
まとめ
「mysql-to-kintone-sync」は、MySQL から Kintone へのデータ移行や同期を簡単に行うことができる PHP ツールです。
段階的なシステム移行や並行運用を検討している方にとって、有用なツールとなるでしょう。
詳細な情報やソースコードは、GitHub リポジトリをご覧ください:
👉 https://github.com/yakiimo-bsp/mysql-to-kintone-sync