-----
ご利用のサーバ:
MODXのバージョン:MODX Evolution 1.0.10J-r1
PHPのバージョン:
MySQLのバージョン:
ブラウザ:
-----
rsyncを用いて、確認用環境と本番用環境でMODXを同期させる仕組みを構築したいと考えております。
確認用環境でコンテンツ等を確認後、本番環境へ反映させる形です。
全体を同期させる場合、以下のやり方で出来るかと思います。
・ダンプしたデータベースの中身を本番用環境へ転送する。
・manager/includes/config.inc.php以外のファイルを転送する。
ただし、要件として、一部のコンテンツのみ、確認用環境を経由せず、本番環境に直接更新したいという内容があり、
どうすれば良いか検討しております。
基本的には
・関係しない部分のテーブルのみを取り出して本番環境へ挿入
・関係しないファイル・ディレクトリのみを本番環境へ転送
となるのかと想定しているのですが、
実際に運用していらっしゃる実例等がもしあれば、ご教示いただけないでしょうか。
質問が曖昧かつ、非常に奇な要件になるのかもしれませんが。。。。
rsyncを利用した同期の仕組みの構築について 【解決済み】
Re: rsyncを利用した同期の仕組みの構築について
kmikage@レアキャラです。
> 全体を同期させる場合、以下のやり方で出来るかと思います。
それで問題ないと思います。
> ・関係しない部分のテーブルのみを取り出して本番環境へ挿入
> ・関係しないファイル・ディレクトリのみを本番環境へ転送
リソースのテーブル(site_content)に限ってお話すると、最初のカラム(id)がリソースIDです。
なので、以下のようなスクリプトを組み、cron等でキックします。
1.カレントのDBのダンプをバックアップに移動(リネーム)し、最新のDBダンプ(カレント)を取得する。
2.SQLファイルをdiffる。
3.該当リソースIDだけ抽出し、UPDATE文を生成する。
4.本番環境に転送し適用する。
スニペット・チャンクについても、同様の管理がされていますので、追加後はスクリプト側にIDを追加します。
画像等に関しては、基本的にMODXからは管理されていないので、随時アップデートか、手動アップデートとなります。
参考まで。
> 全体を同期させる場合、以下のやり方で出来るかと思います。
それで問題ないと思います。
> ・関係しない部分のテーブルのみを取り出して本番環境へ挿入
> ・関係しないファイル・ディレクトリのみを本番環境へ転送
リソースのテーブル(site_content)に限ってお話すると、最初のカラム(id)がリソースIDです。
なので、以下のようなスクリプトを組み、cron等でキックします。
1.カレントのDBのダンプをバックアップに移動(リネーム)し、最新のDBダンプ(カレント)を取得する。
2.SQLファイルをdiffる。
3.該当リソースIDだけ抽出し、UPDATE文を生成する。
4.本番環境に転送し適用する。
スニペット・チャンクについても、同様の管理がされていますので、追加後はスクリプト側にIDを追加します。
画像等に関しては、基本的にMODXからは管理されていないので、随時アップデートか、手動アップデートとなります。
参考まで。
Re: rsyncを利用した同期の仕組みの構築について
kmikage様
ご回答ありがとうございました。
大変助かります。
実施する場合、
DBのDIFFなど、細かくスクリプト組む必要があるのですね。
一部のテーブルを丸ごと、一部の設定ファイルだけ、
など単純であれば・・・と思っていたのですが。。。
やはりややこしい要件になりますよね。
いただいた内容を参考に実際の運用方法について
検討したいと思います。
ありがとうございました。
ご回答ありがとうございました。
大変助かります。
実施する場合、
DBのDIFFなど、細かくスクリプト組む必要があるのですね。
一部のテーブルを丸ごと、一部の設定ファイルだけ、
など単純であれば・・・と思っていたのですが。。。
やはりややこしい要件になりますよね。
いただいた内容を参考に実際の運用方法について
検討したいと思います。
ありがとうございました。