rsyncを利用した同期の仕組みの構築について  【解決済み】

質問全般・改善要望
u1-h
メンバー
メンバー
記事: 2
登録日時: 2013年6月25日(火) 21:48

rsyncを利用した同期の仕組みの構築について  【解決済み】

投稿記事by u1-h » 2013年6月25日(火) 22:04

-----
ご利用のサーバ:
MODXのバージョン:MODX Evolution 1.0.10J-r1
PHPのバージョン:
MySQLのバージョン:
ブラウザ:
-----

rsyncを用いて、確認用環境と本番用環境でMODXを同期させる仕組みを構築したいと考えております。
確認用環境でコンテンツ等を確認後、本番環境へ反映させる形です。
全体を同期させる場合、以下のやり方で出来るかと思います。
・ダンプしたデータベースの中身を本番用環境へ転送する。
・manager/includes/config.inc.php以外のファイルを転送する。

ただし、要件として、一部のコンテンツのみ、確認用環境を経由せず、本番環境に直接更新したいという内容があり、
どうすれば良いか検討しております。

基本的には
・関係しない部分のテーブルのみを取り出して本番環境へ挿入
・関係しないファイル・ディレクトリのみを本番環境へ転送
となるのかと想定しているのですが、
実際に運用していらっしゃる実例等がもしあれば、ご教示いただけないでしょうか。
質問が曖昧かつ、非常に奇な要件になるのかもしれませんが。。。。
アバター
kmikage
管理人
記事: 396
登録日時: 2009年9月01日(火) 20:21

Re: rsyncを利用した同期の仕組みの構築について

投稿記事by kmikage » 2013年6月26日(水) 00:00

kmikage@レアキャラです。

> 全体を同期させる場合、以下のやり方で出来るかと思います。
それで問題ないと思います。

> ・関係しない部分のテーブルのみを取り出して本番環境へ挿入
> ・関係しないファイル・ディレクトリのみを本番環境へ転送
リソースのテーブル(site_content)に限ってお話すると、最初のカラム(id)がリソースIDです。
なので、以下のようなスクリプトを組み、cron等でキックします。

1.カレントのDBのダンプをバックアップに移動(リネーム)し、最新のDBダンプ(カレント)を取得する。
2.SQLファイルをdiffる。
3.該当リソースIDだけ抽出し、UPDATE文を生成する。
4.本番環境に転送し適用する。

スニペット・チャンクについても、同様の管理がされていますので、追加後はスクリプト側にIDを追加します。

画像等に関しては、基本的にMODXからは管理されていないので、随時アップデートか、手動アップデートとなります。

参考まで。
同人サークル にくじゃがソフトウェア
http://www.nikujaga.info/

ブログはじめました。
http://kmikage.nikujaga.info/
u1-h
メンバー
メンバー
記事: 2
登録日時: 2013年6月25日(火) 21:48

Re: rsyncを利用した同期の仕組みの構築について

投稿記事by u1-h » 2013年6月26日(水) 18:58

kmikage様

ご回答ありがとうございました。
大変助かります。

実施する場合、
DBのDIFFなど、細かくスクリプト組む必要があるのですね。
一部のテーブルを丸ごと、一部の設定ファイルだけ、
など単純であれば・・・と思っていたのですが。。。
やはりややこしい要件になりますよね。

いただいた内容を参考に実際の運用方法について
検討したいと思います。

ありがとうございました。