a-blog cmsは、多彩なデータインポート機能を持っています。
特にブログ単位のインポートは便利なのですが、範囲が広いので変更したくない設定も上書きされてしまいます。
ブラウザから毎回入力すると手間がかかる情報だけ、案件に応じてインポートできれば便利です。また、差分インポートができれば、既存のa-blog cmsサイトのリニューアルも楽になりそうです。
検証してみたところ、いろいろ面白いことがわかってきました。
まだあまり知られていない、a-blog cmsのインポート機能について、数回に分けてまとめます。一回目は「コンフィグ単位のインポート」についてです。
- a-blog cmsの、強力なインポート機能を使いこなそう(1)
- a-blog cmsの、強力なインポート機能を使いこなそう(2)
「コンフィグ単位」のインポートとは
a-blog cmsは、以下のようなインポートが可能です。今回利用するのは、このうちの「ブログのコンフィグ単位」のインポートです。
- システム全体(SQL)
- ブログ単位 (YAML)
- ブログのコンフィグ単位(YAML)
- ブログのモジュールID単位(YAML)
- エントリー・ユニット・カテゴリー・カスタムフィールド(CSV)
- エントリー・カテゴリー(Movable Type形式・WordPress形式)
管理ページの「コンフィグ管理」のページへ移動すると、右上に「インポート」「エクスポート」「リセット」というメニューがあります。
- インポート
- 「コンフィグ設定」が、インポートしたYAMLデータの設定で上書きされます。YAMLデータが一部のみの場合は、記載されているデータのみ上書きします。
- エクスポート
- 「コンフィグ設定」の配下にある全ページの設定を、YAML形式でエクスポートします。
- リセット
- 「コンフィグ設定」を初期化します。private/config.system.yaml の内容を読み込みますが、ここに書いていない情報は同ディレクトリの config.system.default.yaml を参照します。
リセット後の特殊な挙動
通常は「エクスポート」を選ぶと、コンフィグの全データが書き出されます。
ところが、コンフィグをリセットすると挙動が変わり、「保存」ボタンを押したことがあるページのデータだけがエクスポートされるようになります。
つまり、リセット後、何も保存をしていない状態でエクスポートをするとYAMLファイルは空になるのです。
リセットを利用した、簡単な差分インポート
この挙動を利用すると、プログラミングの知識がなくても、コンフィグの必要な機能だけをエクスポート・インポートすることが可能です。
- a-blog cmsを新規インストールするか、子ブログを増やします(以降、サイトA)。エクスポートしたいa-blog cms(以降、サイトB)と同じバージョンが望ましいです。
- インストールしたらコンフィグをリセットし、ブラウザで別タブを開いて、サイトBに同時ログインします。
- タブを切り替えながら、サイトAのコンフィグを、サイトBのコンフィグのエクスポートしたいページと同じ内容にして「保存」します。エクスポートしたくないページは保存しないでください。ここでは「編集設定」のページだけ変更してみます。
- 変更後、サイトAのコンフィグを「エクスポート」します。
- できたYAMLファイルを任意のサイトにインポートすると、編集設定だけがサイトBの内容に変更されます。
お手軽だけど…
この方法はお手軽ですが、新規のブログを別途用意しなければなりませんし、インポートしたいのが「編集設定」だった場合は1ページの情報がとても多いので、あまり楽になった気がしません。
次回は、YAMLデータを自作して、さらに細かいインポートをしてみます。