データ管理

目次

コンフィグ・ルール・モジュールのインポート

Ver. 2.7.0 より、コンフィグ・ルール・モジュールのみのエクスポート・インポートに対応しました。この機能を使うことにより、開発環境で設定したコンフィグやモジュールを、すでに運用されている本番環境にエントリーなどに影響を与えることなく、インポートすることができるようになりました。

エクスポート

ブログ単位でエクスポートを行います。エクスポートは 管理ページ > コンフィグ > エクスポート(コンフィグ / ルール / モジュール) からエクスポートできます。

エクスポートデータは YAML形式 で書き出されます。


エクスポート画面

エクスポート画面


インポート

ブログ単位でインポートを行います。インポートは 管理ページ > コンフィグ > インポート (コンフィグ / ルール / モジュール) からエクスポートしたYAMLファイルを指定することでインポートできます。

既存のコンフィグ / ルール / モジュールを削除してインポートを行いますので、ご注意ください。


インポート画面

インポート画面


仕様

以下の手順でインポートを行います。

  • 対象ブログのコンフィグ・ルール・モジュールの削除
  • エントリーID, カテゴリーIDなどの新しいIDを発行
  • インポートデータのIDと新しいIDをコードベースで比較を行い、置き換え
  • データのインポート

IDのずれ対応

開発環境と本番環境でエントリーIDやカテゴリーIDが違う可能性があります。 そこで、エントリーコードやカテゴリーコードなどのコードベースで比較を行い、IDを変換してインポートを行います。

例えば開発環境で、お知らせ(CID: 11)で絞り込んでいるEntry_SummaryモジュールIDを作ったとします。 しかし本番環境ではお知らせカテゴリーがCID: 13 だったとします。このままだとデータベースのデータをそのままインポートしてしまうと、IDがずれ、「お知らせ」で絞りこめなくなってしまいます。

そこで、インポート時にモジュールIDで参照されているCIDをコードベースで比較を行い 11 から 13 に自動的に変換することにより、インポートしてもデータのずれを防ぐことができます。

エラーレポート

インポートを行った結果、以下のような理由によりインポートに失敗する項目が出てきます。インポートに失敗した項目についてはレポートが出ますので、問題のあるモジュールなどを修正ください。

IDの変換に失敗

モジュールIDやルールに設定してある、ID類(エントリーID, カテゴリーIDなど)がコードベースで見つからない場合は、モジュール自体はインポートされますが、ID設定は空に設定されます。

IDの重複によりインポートに失敗

親ブログに同名のグローバル設定のモジュールIDが存在する場合は、重複によりそのモジュールIDはインポートされません。


エラーレポート画面

エラーレポート画面

コンフィグの部分エクスポート・インポート

部分的なコンフィグのエクスポート・インポートが可能です。例えば、コンフィグの編集設定は設定項目も多く、通常のインポートで対応したいが、テーマなどの設定も変わってしまいます。そこで、この部分インポートを使うと、他のコンフィグに影響なく、部分的にインポート出来ます。

エクスポート方法

エクスポートしたい、各コンフィグのページに移動します。例えば、編集設定ページなど。移動すると右上にエクスポートボタンがあるので、ここをクリックするとyamlデータとしてエクスポートされます。


コンフィグの部分エクスポート

コンフィグの部分エクスポート


また、ルール適応状態のコンフィグもエクスポート・インポートできます。

インポート方法

コンフィグの部分インポートは、エクスポートと同じく、コンフィグの各ページの右上の「インポート」ボタンから移動するか、管理ページ > コンフィグ > 「コンフィグの部分インポート」から移動できます。

ここでインポートすることにより、yamlにはない情報は削除せずに、yamlにある情報だけ上書きして部分的に書き換えます。


コンフィグの部分インポート

コンフィグの部分インポート

コンフィグの部分インポート コンフィグの部分インポート

新規ブログ追加時のコンフィグ(デフォルト)の設定

コンフィグのエクスポート

コンフィグのエクスポート


新規ブログ作成直後に使われるコンフィグのデフォルト値は、 private/config.system.default.yamlprivate/config.system.yaml の値が設定されます。(config.system.yaml が上書き用のカスタマイズ用)

運用時にブログを作成していく設計の場合に、このコンフィグのデフォルト値を設定することにより運用が楽になります。しかし手作業でコンフィグの値を打ち込むのは時間がかかります。そこで、コンフィグのエクスポート機能を使うことで簡単に設定できるようになります。

エクスポート方法

任意のブログ管理画面でデフォルトに設定したいコンフィグを保存します。

コンフィグが設定し終わったら、そのブログで 「管理画面 > コンフィグ > エクスポート(コンフィグ/ルール/モジュール)」 のページに移動して「デフォルトコンフィグのエクスポート」の「エクスポート」ボタンを押します。

yamlファイル がダウンロードできますので、この中身を private/config.system.yaml に設定することで、設定したコンフィグが最初から反映された状態でブログが作成できます。

a-blog cmsのデータをブログ単位でエクスポートする

ブログのエクスポート機能を使うことで、a-blog cmsのブログ毎のデータ、画像をzip形式で書き出すことができます。この機能で書き出したファイルは、他のa-blog cmsに取り込むことが可能です。

インポート対象

  • カテゴリー
  • エントリー
  • タグ
  • モジュールID
  • コンフィグ
  • レイアウト
  • ルール
  • ダッシュボード
  • カスタムフィールド
  • 画像、ファイルデータ

データ数が多い状況ではエクスポート処理におけるサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。

エクスポート手順

管理ページ > ブログ の 「エクスポート・インポート」タブに移動します。「エクスポート」ボタンを押すことで、データがエクスポートされzipファイルがダウンロードされます。


ブログのエクスポート画面を修正

ブログのエクスポート画面を修正

a-blog cmsのデータをブログ単位でインポートする

ブログのエクスポート機能を使うことで、a-blog cmsのブログ毎のデータ、画像、ファイルを取り込むことが可能です。取り込むためには前述のエクスポート機能にてダウンロードしたzipファイルを利用します。

インポート対象データ

  • カテゴリー
  • エントリー
  • タグ
  • モジュールID
  • コンフィグ
  • レイアウト
  • ルール
  • ダッシュボード
  • カスタムフィールド
  • 画像、ファイルデータ

インポート方法

インポートを実行するには管理者によるログインが必要です

前述のブログエクスポート機能でエクスポートしたzipファイルを下記の場所に設置します。

  • private/import/

設置後、管理者でログインして インポートしたいブログの管理ページ > ブログ の 「エクスポート・インポート」タブ に移動します。 zipファイルが正しく設置されていれば、zipファイルをセレクトボックスで選択できるようになっていますので、インポートしたいzipファイルを選択します。

zipファイルを選択後、「インポート」ボタンを押すことで、インポートが実行されます。

データ数が多いインポート処理はサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。


インポート画面

インポート画面

CSVファイルからのインポート

管理ページからカンマ区切りデータ(csv形式)をエントリー・カスタムフィールド、ユニットに変換してインポートすることができます。

実行は慎重に

データ数が多いインポート処理はサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。

カテゴリーコードとエントリーコードの重複

既存のコンテンツとインポートされるコンテンツとの間で同じコードをもつエントリーやカテゴリーが存在する場合はコードの重複が発生します。その場合はコンテンツが正しく表示されない可能性がありますので、インポート後に管理ページから個別に修正してください。

インポートの仕様

CSVファイルの内容によって、以下のような仕様があります。

  • CSVファイルに、カスタムフィールドの情報のみが含まれる場合は、エントリー情報は自動で作成されます。
  • CSVに entry_category_id を指定することで、優先してそのカテゴリーにインポートされます。
  • CSVに entry_id (エントリーID)フィールドを用意すると、同じエントリーIDのエントリーを上書きするようになります。 すべて、新規追加する場合は、 entry_id を指定しないでください。
  • データとして改行を含みたい場合は、値をダブルクウォートで囲みます。

プロフェッショナル版以上

プロフェッショナルライセンス以上限定になりますが、 CSVの項目に entry_id がなく「*(アスタリスク)」から始まる項目名(1つ)がある場合、その項目をキーにして一意(unique)になるエントリーをアップデートします。

CSVに指定できるフィールド


フィールド名 フォーマット 説明 指定なしの場合
entry_id 数値 エントリーIDを指定 123 新規eid
entry_code 文字列 コード(ファイル名)を指定 entry-123.html 通常エントリ作成時と同様
entry_status open | close | draft | trash ステータスを指定(open: 公開、close: 非公開、draft: 下書き、trash: ゴミ箱)のいずれかを指定 open open
entry_title 文字列 タイトルを指定 テストエントリー CSV_IMPORT-[eid]
entry_link 文字列 リンク先URLを指定 https://www.a-blogcms.jp/
entry_datetime yyyy/MM/dd H:mm:ss 日付を指定 2018-12-06 15:08:01 インポート時の日時
entry_start_datetime yyyy/MM/dd H:mm:ss 公開日時を指定 2018-12-06 15:08:01 1000-01-01 00:00:00
entry_end_datetime yyyy/MM/dd H:mm:ss 掲載期限を指定 2018-12-06 15:08:01 9999-12-31 23:59:59
entry_posted_datetime yyyy/MM/dd H:mm:ss 作成日を指定 2018-12-06 15:08:01 インポート時の日時
entry_updated_datetime yyyy/MM/dd H:mm:ss 更新日を指定 2018-12-06 15:08:01 インポート時の日時
entry_summary_range 数値 ユニットの「続きを読む」の位置を指定(例: 3 -> 上から3番目のユニットを一覧で出力) 3
entry_indexing on | off インデキシング(一覧に出力するかどうか)を設定(on: 出力する、off: 出力しない) on on
entry_primary_image 数値 メイン画像のユニットIDを指定 123
entry_category_id 数値 カテゴリーIDを指定 1
entry_user_id 数値 エントリー所有者のユーザーIDを指定 1 インポート実行者のUID
unit@タグセレクト[数値] 文字列 テキストユニットの追加
タグセレクト: テキストタグセレクトで設定できるもの [p, h2, h3, ul, markdown, none....] 
[]の中の数値: ユニットの順番を指定
テストユニット
カスタムフィールド変数 カスタムフィールド としてインポートされます。インポート先のフィールド仕様にあった値を設定ください

CSVファイルからのインポート手順

  1. インポートするカンマ区切りデータ(csv形式)を用意します。
  2. ログインをして管理ページのインポートにアクセスします。(図1)
  3. インポート先のブログを確認し、インポート先のカテゴリーを必要に応じて選択してください。(図2)
  4. インポート元になるCSVファイルを選択します。
  5. [インポートを実行する]ボタンをクリックすると、インポートを実行します。

(図1)インポート管理トップ

(図1)インポート管理トップ

(図2)CSVインポート画面

(図2)CSVインポート画面

CSVファイルの例

"entry_title","entry_code","zip","tel","address","unit@p[1]","unit@markdown[2]"
"アップルップル","csv-1","450-0002","052-485-8577","名古屋市中村区名駅3-18-5 モンマートビル5F","1つ目のユニット","## 見出し2"
"あっぷるっぷる","csv-2","000-0000","000-000-0000","指定したentry_titleやentry_codeの通りにエントリーが生成されます", "1つ目のユニット","### 見出し3"
"appleple","csv-3","111-1111","111-111-1111","フィールド名は任意の英数字で指定できます","1つ目のユニット","
## 見出し2

ダブルクウォートで囲むことで改行できます。

- リスト1
- リスト2
- リスト3
"
  • entry_title:エントリーのタイトル
  • entry_code:エントリーのコード(既存のエントリーとの重複を避けユニークな文字列を指定してください。拡張子はいりません。)
  • zip:カスタムフィールド、郵便番号として利用
  • tel:カスタムフィールド、電話番号として利用
  • address:カスタムフィールド、住所として利用
  • unit@[1] : 1番目のテキストユニット
  • unit@markdown[2] : 2番目のマークダウンテキストユニット

WordPressからのインポート

Wordpressのエクスポートデータからa-blog cmsにインポートする事ができます。

実行は慎重に

データ数が多い状況ではインポート処理におけるサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。

仕様は以下になります

  • Wordpressにて、投稿のみのエクスポートを対象とする。
  • 現在のブログ&ユーザーでインポートされる。
  • インポート先カテゴリーを選択してインポートする。
  • 記事のユニットをpタグで囲む、ウィジウィグ、マークダウン、自由記入から選択してインポート
  • カスタムフィールドもインポートされます。
  • <!--more--> でユニットの分割をし、続きを読むにすることが出来ます。

インポート手順

  • Wordpressで投稿データのエクスポートをします。(図1)
  • a-blog cmsのログイン後に、管理ページのインポートにアクセスします。(図2)
  • インポート先のブログを確認し、インポート先のカテゴリーを必要に応じて選択してください。
  • Wordpressのエクスポートデータ(XML)を選択します。
  • インポートするユニットを選択します。(pタグ | ウィジウィグ | マークダウン| 自由記入)
  • [インポートを実行する]ボタンをクリックすると、インポートを実行します。

図1

図1


図2

図2

Movable Typeからのインポート

Movable Typeのエクスポートデータからa-blog cmsにインポートする事ができます。

実行は慎重に

データ数が多い状況ではインポート処理におけるサーバーへの負荷が高くなります。そのため、作業時間・タイミングに注意しておこなってください。

仕様は以下になります

  • Movable Typeにて、txt形式のエクスポートのみ対象とする。
  • 現在のブログ&ユーザーでインポートされる。
  • Movable Typeのカテゴリーもインポートされる。
  • 記事のユニットをpタグで囲む、ウィジウィグ、マークダウン、自由記入から選ぶ。
  • カスタムフィールドはインポートされない。
  • ユニットの分割をし、続きを読むにすることができる。

インポート手順

  • Movable Typeでtxt形式で投稿データのエクスポートをします。
  • a-blog cmsのログイン後に、管理ページのインポートにアクセスします。(図1)
  • Movable Typeのエクスポートデータ(txt)を選択します。
  • インポートするユニットを選択します。(pタグ | ウィジウィグ | マークダウン| 自由記入)
  • [インポートを実行する]ボタンをクリックすると、インポートを実行します。

図1

図1

CSVファイルからのユーザーのインポート

CSVファイルを使ったインポートについて

管理ページからカンマ区切りデータ(csv形式)をユーザ情報に変換してインポートすることができます。
利用するには、エンタープライズライセンスか、無制限ユーザーのオプションが必要になります。

インポート方法

ユーザのCSVファイルのインポート設定は、管理ページ > インポート > USERから行うことができます。下の図のように1からインポートしたいユーザのCSVファイルを選択し、2「インポートを実行する」を押してCSVファイルをインポートすることができます。


ユーザーインポート実行方法

ユーザーインポート実行方法


インポート時のポイント

ユーザをCSVファイルでインポートする際、以下の項目は必須項目です。なお、そのほかの項目についてはユーザのカスタムフィールド名となります。
なお、CSVファイルにuser_idを指定することで既存のユーザーを上書きすることができます。

  • user_code:ユーザのコード(既存のユーザとの重複を避けユニークな文字列を指定してください)
  • user_mail:ユーザのメールアドレス
  • user_pass:ユーザのパスワード

CSVファイルの例

user_code,user_mail,user_pass,cfd_addr,cfd_zip,cfd_tel
appleple,info@example.com,********,名古屋市中村区名駅3-18-5 モンマートビル5F,450-0002,052-485-8577

カスタムフィールド

上記のCSVファイルで取り込まれた項目は以下のようにカスタムフィールドとして取り込まれます

カスタムフィールド名
{cfd_addr}名古屋市中村区名駅3-18-5 モンマートビル5F
{cfd_zip}450-0002
{cfd_tel}052-485-8577

カスタムフィールドの値は、管理ページのカスタム設定等に表示することが出来ます。


バックアップ

アクセスログ


* Ver. 2.7.0 より 管理ページ > チェックリストに移動しました。

アクセスログをCSV形式でダウンロードします。期間を指定してダウンロードを行います。 アクセスログの保存設定として、「取得しない」「POSTのみ取得」「全て取得」と3種類あります。 「取得しない」としていた場合はログが保存されません。 アクセスログには保存期間があります。「7日間」「30日間」「90日間」「1年間」と4種類あります。 保存設定、期間設定については、管理ページ > コンフィグ > 機能設定を確認してください。


エクスポート

データ件数が多く実行に失敗する場合は、PHPの実行時間の最大値設定(max_execution_time)やメモリの設定(memory_limit)を調整してください。

データベースをエクスポート

アクセスログとキャッシュ以外のテーブルをzipフィアル形式でダウンロードします。ブログ単位ではなく全てが対象となります。

アーカイブをエクスポート

画像ファイルなどが保存されているarchives ディレクトリのデータをzip形式でダウンロードします。 archives内のファイルをzipにしてダウンロードしている以外特別な処理は行っておりません。SSHやFTPが使える方でしたらそちらを利用していただいても問題ありません。

インポート(データベース)

エクスポートにより作成したzipファイルをもとに、インポートを行います。既存データを残してのデータ追加のインポートではなく、データの置き換えになりますので注意してください。

アーカイブインポート

エクスポートしたアーカイブのzipファイルを展開しインポートをします。/archives/backup/へファイルをアップロードしてから実行します。

データ修正

画像サイズ修正

エントリーの画像ユニットにてアップロードされた画像ファイルは、設定されたサイズの画像にリサイズされて保存されます。後から設定の値を変更しても、既にリサイズされたアップロード済み画像のサイズは変更されることはありません。こういったケースでアップロード済みの画像サイズを変更するために画像サイズ修正があります。


画像サイズ修正画面

画像サイズ修正画面


ユニットサイズ修正

変更したい画像を「ターゲット」にて指定します。「リサイズ」で変更後の画像サイズを指定します。長編は縦長画像の場合は縦を基準に、横長画像の場合は横を基準にリサイズすることを意味しています。
ターゲットに表示されている内容のうち、拡大画像、モバイル画像、正方形画像についてはコンフィグのimage_size_large、image_size_tiny、image_size_squareの値です。
通常画像のプルダウンは、現在のブログ(BID)に登録済みである画像ユニットの全サイズが展開されています。

ユニットのサイズ(画像、マップ、メディア、ビデオ、画像URL)を修正します。「サイズ」はピクセル指定の実際サイズ、「表示サイズ」ではクラスや %指定します。


ユニットサイズ修正画面

ユニットサイズ修正画面


例えば、タイプ=マップ、サイズ/表示サイズ=サイズ、ターゲットで登録されている画像ユニットのサイズが表示されますので変更いたい画像のサイズを選択。その後、変更値を「640x320」のように指定して修正します。
これで指定した地図ユニットのサイズが変更されます。

ユニットグループ修正

ユニットグループに設定してあるクラス(class)を一括で書き換えます。登録済みユニットで使用されているユニットグープがターゲットに表示されます。
変更したいクラス名を記入して「修正」で変更されます。

シーケンス修正

BIC、CIDやEIDなど登録されるたびに自動で割り振られるIDはシーケンスにて管理されています。何らかの問題によりIDの重複が発生するようになってしまった場合などにこちらを実行して、シーケンスの自動修正を行います。

フルテキスト修正

エントリーのタイトル、エントリーユニットのテキストデータや、カスタムフィールドの値などのテキストデータは、検索機能使用時に検索対象とするため、タイトルやユニットなど個々のデータとは別に検索対象用にデータを生成しています(これをフルテキストと呼んでいます)
このフルテキストに何らかの問題が発生した場合や、DBを直接変更するなどした場合に、データ内に存在するはずの文字が検索でヒットしないことがあります。こういった場合にフルテキストの修正を行います。

N-gramインデックスの付与

N-gramインデックスを利用したテキスト検索に使用します。config.system.yamlにて次の値を設定する必要があります(config.system.default.yamlからコピーします)。

ngram  : 2

既存エントリーへのタグ追加

CSVファイルで指定したワードが含まれるエントリーに対して、そのワードでタグを一括追加します。 「プレビュー」で対象のエントリーを事前に確認することができます。

MySQLでのエクスポート、インポート

a-blog cmsの機能として提供しているデータのバックアップや、サーバー移転用の機能の他に、DB(MySQL)から直接データ操作をする方法もあります。
※DBの操作方法、phpMyAdminの利用方法はここでは解説しません。

エクスポート

SQLでデータをエクスポートします。phpMyAdminなどのサポートツールを利用すれば容易に実行できます。扱うデータ量が多く、実行中に処理が止まってしまう場合はテーブル単位でエクスポートをするなどして対応します。

インポート

SQLでデータをインポートします。データベースと接続ユーザーの作成は別途行う必要があります。

別のWebサーバーへインポートした場合はconfig.server.phpに設定が必要になります。設定内容を直接変更するか、新規に設置するサーバーの場合はa-blog cmsのインストールを実行してconfig.server.phpを設定することでも対応できます。
新規インストール後にデータベースのテーブルをインポートしたデータに入れ替えるようにします。
サイト移転時はデータベースのインポートとconfig.server.phpに接続設定をする他に、ファイルの移動も必要になります。archives、archives_rev、media、themes/使用しているテーマのデータ移動も行ってください。

エクスポートしたWebサイトのドメインと、インポートしたWebサイトのドメインが違う場合はライセンス違反となります。インポートしたドメイン用の正式ライセンスファイルを設置し、メンテナンス(setup)メニューにあるドメインの修正を実行します。