テスト用のMODXから本番用のMODXへのデータ移行

質問全般・改善要望
返信する
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by kazuike »

これはトラブルということではなく、広い意味で設定方法や操作方法についての相談です。

私が扱っているサイトでは、
たいていの場合、ひとつのサイトに対して、テスト用と本番用の二つのMODXをインストールして運用しています。

普段、お知らせ等の更新は、本番のみ行なってもらっていますが、
新しいコンテンツ(新しいテンプレート)が増えるような場合、
テスト用のMODXに、新しいテンプレートを設定した上で、新しいコンテンツのリソースを入力し、
それをお客様に確認してもらった後、本番用のMODXに反映させるということをやっています。

入力したリソースが一件や二件なら、管理画面上でコピペするレベルで済むのですが、
件数が多くなってくると、それも大変なので、
データベースやFTPレベルで移行する方法を考えるのですが、色々と問題があります。 :(

リソースに関しては、
本番とテストでは、リソースに振られるIDが違ってきていますので、
そのままデータベース上で流し込むことができません。
コンテナ単位で、テストからデータを取ってきて、
データを手作業で(IDや親ID等を)直した上で、本番に流し込むということになります。
テンプレート変数や所属グループを使っている場合は、泣きたいようなことになります。 :cry:

さらに、他のページへのリンクについても、
リソースのIDが違うので、IDでのリンク([~123~]の形式)は使えません。
サイトアドレスも違うので、「http://…」も使えません。

画像やPDFファイル等に関しては、
FTPで、テストから取ってきて、本番にアップすることはできますが、
ApacheとFTPのユーザが違う場合が多いので、全ファイルのパーミッション変更が必要ですし、
もし、ファイル名が本番アップ済みのファイルと重複していたらファイル名を変更するとともに、
そのファイルを使っているリソースを探して、そのHTMLソースも変更する必要があります。

以上のようなことがあるので、
(これ以外にもまだあるかもしれませんが…)
可能な場合は、最初からテスト用と本番用の管理画面を両方開いて、同じ内容を入力していく。
ということをやったりしていますが、
コピペミスや入力漏れ、後で変更した際の漏れやミス等も発見しにくいということもあり、
(入力する人が嫌がるということもあり、)あまり良い方法とも思えません。

テストから本番への移行作業を効率的に行う方法が無いか、
皆様のお知恵をお借りできないかと思い、投稿いたしました。
よろしくお願いいたします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by yama »

もし仕組みを作るとしたら、テストのたびにテストサイトを都度初期化して本番サイトと状態を同期し、テストサイトを検証中は本番サイトの更新をロックする。検証できたら変更内容を本番サイトに反映というような流れはどうでしょう。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by kazuike »

yama さんが書きました:もし仕組みを作るとしたら、テストのたびにテストサイトを都度初期化して本番サイトと状態を同期し、テストサイトを検証中は本番サイトの更新をロックする。検証できたら変更内容を本番サイトに反映というような流れはどうでしょう。
ありがとうございます。
本番更新を止めることができる場合は、そういう方法もありですね。
…と思ったところで気づきました。
本番側の更新を止めなくても、この期間中の本番側の更新の量が少ないのであれば、
この期間中の本番側での更新を、テスト側に反映してから、
テストサイトをそっくりそのまま本番サイトに移行すれば良いですね。 :)
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by kazuike »

これを頻繁にやるとしたら、以下の点が気になりますね。

データベースの移行に関しては、
バックアップとリストアを繰り返すことになりますが、
[(rb_base_dir)]と[(filemanager_path)]は必ず書き換える必要があり、
場合によっては、[(site_url)]や[(base_url)]も書き換える必要があります。
リストア機能に、
こういったサイト固有の設定項目を除外するモードがあれば、
助かる気がします。

画像やPDFファイル等の「content」以下のファイルの移行に関しては、
ApacheとFTPのサーバ上でのユーザが違う場合、
FTPでアップするとファイルオーナーが違ってしまいますし、
また、MODXから操作するために、全ファイルのパーミッションを変更する必要があり、
FTPソフトでこれをやるのは、ディレクトリが分かれているとけっこう大変です。
いったんどこか別のディレクトリにFTPでアップロードしたファイル群を、
MODXで「content」以下にコピーする機能があると便利かもしれません。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by yama »

なるほどですね。4つのオプションを変更しないようにしましたので、もしよければ試してみてください。モードを設定できれば親切ですが、フォームを追加するのは工数がかかるので、オプションごとインポートしたい場合(どういう理由で?)は逆に手作業いただくということで・・
ディレクトリのコピー機能は単純コピーでよければすぐ作れると思います。(リストア機能とは別の話になると思うので、専用モジュールということになると思いますが)
添付ファイル
bkmanager.static.zip
(6.46 KiB) ダウンロード数: 459 回
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by kazuike »

yama さんが書きました:なるほどですね。4つのオプションを変更しないようにしましたので、もしよければ試してみてください。モードを設定できれば親切ですが、フォームを追加するのは工数がかかるので、オプションごとインポートしたい場合(どういう理由で?)は逆に手作業いただくということで・・
ありがとうございます。
直近の案件は入力始まってしまい、ちょっとすぐに試せそうにないので、
取り急ぎ、ソースを拝見しました。(私が考えていたとおりのものです。 :)

フォームとまで行かなくても、
putSettingsを呼ぶかどうかのフラグをつけておけば、
ソース上ででも1箇所変更すれば、全リストアと別実装からのリストアを簡単に切替できそうな気はしますが…
yama さんが書きました:ディレクトリのコピー機能は単純コピーでよければすぐ作れると思います。(リストア機能とは別の話になると思うので、専用モジュールということになると思いますが)
suExecじゃない環境って、ホスティングサービスでも、専用サーバとかVPSとかなら多いと思いますので、(今回の私のような他の実装からの移行に限らず)、FTPで画像やPDF、さらには動画のような大きなファイルをアップしたいという需要はあるような気がするのですが…(たぶん)
[(new_file_permissions)]と[(new_folder_permissions)]を使ってコピーするものであれば、無条件に上書きで良いように思います。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: テスト用のMODXから本番用のMODXへのデータ移行

投稿記事 by yama »

ファイルのバックアップをとるオプションを追加すればディレクトリコピーの機能を付けやすいかも。クォータの問題などいろいろありそうですが考えてみます。
きのう添付したコードはputSettingsの後にclearCacheを実行する必要があるかもしれません。あとで調べてみます
返信する