a-blog cmsは、多彩なデータインポート機能を持っています。
特にブログ単位のインポートは便利なのですが、範囲が広いので変更したくない設定も上書きされてしまいます。

ブラウザから毎回入力すると手間がかかる情報だけ、案件に応じてインポートできれば便利です。また、差分インポートができれば、既存のa-blog cmsサイトのリニューアルも楽になりそうです。

検証してみたところ、いろいろ面白いことがわかってきました。
まだあまり知られていない、a-blog cmsのインポート機能について、数回に分けてまとめます。一回目は「コンフィグ単位のインポート」についてです。

「コンフィグ単位」のインポートとは

a-blog cmsは、以下のようなインポートが可能です。今回利用するのは、このうちの「ブログのコンフィグ単位」のインポートです。

  • システム全体(SQL)
  • ブログ単位 (YAML)
  • ブログのコンフィグ単位(YAML)
  • ブログのモジュールID単位(YAML)
  • エントリー・ユニット・カテゴリー・カスタムフィールド(CSV)
  • エントリー・カテゴリー(Movable Type形式・WordPress形式)

管理ページの「コンフィグ管理」のページへ移動すると、右上に「インポート」「エクスポート」「リセット」というメニューがあります。

インポート
「コンフィグ設定」が、インポートしたYAMLデータの設定で上書きされます。YAMLデータが一部のみの場合は、記載されているデータのみ上書きします。
エクスポート
「コンフィグ設定」の配下にある全ページの設定を、YAML形式でエクスポートします。
リセット
「コンフィグ設定」を初期化します。private/config.system.yaml の内容を読み込みますが、ここに書いていない情報は同ディレクトリの config.system.default.yaml を参照します。

リセット後の特殊な挙動

通常は「エクスポート」を選ぶと、コンフィグの全データが書き出されます。

ところが、コンフィグをリセットすると挙動が変わり、「保存」ボタンを押したことがあるページのデータだけがエクスポートされるようになります。

つまり、リセット後、何も保存をしていない状態でエクスポートをするとYAMLファイルは空になるのです。

リセットを利用した、簡単な差分インポート

この挙動を利用すると、プログラミングの知識がなくても、コンフィグの必要な機能だけをエクスポート・インポートすることが可能です。

  1. a-blog cmsを新規インストールするか、子ブログを増やします(以降、サイトA)。エクスポートしたいa-blog cms(以降、サイトB)と同じバージョンが望ましいです。
  2. インストールしたらコンフィグをリセットし、ブラウザで別タブを開いて、サイトBに同時ログインします。
  3. タブを切り替えながら、サイトAのコンフィグを、サイトBのコンフィグのエクスポートしたいページと同じ内容にして「保存」します。エクスポートしたくないページは保存しないでください。ここでは「編集設定」のページだけ変更してみます。

  1. 変更後、サイトAのコンフィグを「エクスポート」します。
  2. できたYAMLファイルを任意のサイトにインポートすると、編集設定だけがサイトBの内容に変更されます。

お手軽だけど…

この方法はお手軽ですが、新規のブログを別途用意しなければなりませんし、インポートしたいのが「編集設定」だった場合は1ページの情報がとても多いので、あまり楽になった気がしません。

次回は、YAMLデータを自作して、さらに細かいインポートをしてみます。

この記事を書いた人

うぇびん

愛知県豊橋市に住んでいる、荒ぶるウェブおばさん。WordPressをはじめとした各種CMSを研究するのが好き。札幌のIT企業のビットスター株式会社に所属しています。