baserCMS 4系テーマの5系化(番外編) - 「Omotenashi2」初期データをマイグレートする。

- 2025/4/18 追記
「5系テーマガイド - baserCMS4のテーマを変換 - 初期データの変更」の内容以外に変更が必要と思われる内容を追記しました。「4系テーマの5系化」の番外編として、「Omotenashi2」初期データをマイグレートしようと思います。
本来、4系「Omotenashi2」テーマの5系化をステップを踏んでトライアルアンドエラーでやってみよう - というコンセプトのシリーズ記事なので、最小構成の5系化「Omotenashi2」テーマの適用後、いの一番に初期データを読み込めるようにしておくべきでした。そうすれば、4系「Omotenashi2」テーマのレイアウトイメージを再現するという点で、よりわかりやすかったはずなので。
と言うわけで、遅ればせながら「5系テーマガイド - baserCMS4のテーマを変換 - 初期データの変更」を参照しつつ、すすめてみたいと思います。
考察のため、まずは、5系標準のサンプルテンプレート「BcThemeSample 」に付属している初期データの「empty」をサンプルにフォルダ、ファイル構成を紐解いてみます。その上で、4系「Omotenashi2」テーマの初期データ「default」の5系マイグレート手順、データ移行の要否などを考察してみたのが下図。
眺めてみると、5系「BcThemeSample」テーマの初期データ「empty」には、4系「Omotenashhi2」テーマの初期データ「default」のcontent_links.csv、editor_templates.csv、permissions.csvおよび「Feed」プラグインフォルダは見当たりません、つまり、5系初期データをマイグレート(作成)するために、必須ではないことがわかります。おそらく、データ間で依存関係がなく、baserCMSのインストール時に生成される当該データのテーブルにそもそもデータレコードがないようなものは必須ではないのかと思います。
その上で、4系「Omotenashhi2」テーマの初期データ「default」のこれらと同名のCSVファイルを紐解いてみると、
- content_links.csvは、データレコードがなく、よって移行作業は不要と考えます。
- editor_templates.csvは、コアプラグイン化されており、プラグインのインストール時におそらく自動生成されるとおもわれ、あらためて移行作業は不要と考えます。
- permissions.csvは、同じくコアプラグイン化されていて、アクセスルール(permissionsテーブル)のデータは、baserCMSのインストール時、または、プラグインのインストール時に自動生成する仕様となっているようなので、移行作業は不要と考えます。
- Feedプラグインフォルダは、5系で廃止されたため、移行作業は不要です。
次に、user_groups.csvは、5系「BcThemeSample」テーマの初期データ「empty」にも見当たりますが、そもそも「Omotenashhi2」テーマで独自にユーザーグループを設定しているわけではないし、5系になって仕様も何やら変わっているようなので、ここは素直に5系初期データ「empty」に用意されているものをそのまま使用すれば良いと考えます。併せて、users_user_groups.csvも5系初期データ「empty」に用意されているものをそのまま使用します。
詳細
上記の考察を踏まえて、
- まず、5系標準のサンプルテンプレート「BcThemeSample 」に付属している初期データの「empty」は、文字通り最小限必要なデータテーブルとデータレコードの構成なので、基本的にその構成を目指して4系「Omotenashhi2」テーマの初期データ「default」のデータを移行する。
- 上記に照らして、不要と思われるデータは敢えて移行しない。
- カラムの値の書き換え等が必要なデータは、移行後に行う。
と言う手順で5系マイグレートしようと思います。
まず、plugins/Omotenashi2/config/data/default/
の位置に「default」フォルダを作成します。作成した「default」フォルダ内に4系「Omotenashhi2」テーマの初期データ「default」内の「Blog」、「Mail」、「Uploader」をコピーし、フォルダ名にプレフィックス名を付けた「BcBlog」、「BcMail」、「BcUploader」に変更します。
次に、5系「empty」初期データに倣って「BaserCore」、「BcSearchIndex」、「BcThemeConfig」、「BcWidgetArea」のフォルダを「default」直下に作成し、それぞれのフォルダに該当するcsvファイルを4系「Omotenashhi2」テーマの初期データ「default」からコピーします。
次に、「default」直下に「BaserCore」フォルダを作成し、5系「empty」初期データからuser_groups.csvおよびusers_user_groups.csvをコピーします。
4系「Omotenashhi2」テーマの初期データ「default」に残ったcontent_links.csv、editor_templates.csv、permissions.csvおよび「Feed」プラグインフォルダは 、移行しません。
最後に、カラムの値、内容の変更作業です。
まず、「5系テーマガイド - baserCMS4のテーマを変換 - 初期データの変更」に記載されている以下のファイルについてカラムの値を変更します。
- contents.csvについては、
"plugin"
カラムの値を次のように変更。"Core"
→"BaserCore"
、"Blog"
→"BcBlog"
、"Mail"
→"BcMail"
。"site_id"
カラムの値の"0"
の箇所を"1"
に変更。 - pages.csvについては、固定ページのコンテンツエリアはPHPの関数が利用できなくなったため、
"contents"
カラム内で関数を利用している箇所は、削除、修正します。 - site_configs.csvについては、
"name"
カラムの値が"editor"
のレコードついて、"value"
カラムの値を"BcCkeditor"
から"BaserCore.BcCkeditor"
に変更。 - widget_areas.csvについては、
"widgets"
カラムのデータをラッコツールズ - Base64 エンコード・デコードなどでアンシリアライズ化(Base64 デコード)し、テキストエディタなどにペーストします。プラグイン名称としてBlog"
と記述されている箇所をを"BcBlog"
にリプレイスします。修正したものをあらためてラッコツールズ等でシリアライズ化(Base64 エンコード)し、シリアライズ化したコードでwidget_areas.csvの"widgets"
カラムのデータを書き換えます。 - search_indices.csvについては、
"site_id"
カラムの値の"0"
の箇所を"1"
に変更。
次に、上記以外に必要と思われるカラムの追加、カラムの値、内容の変更作業です。
- search_indices.csvについては、ファイル名自体がそもそも錯誤しており、正しくは、search_indexes.csvですのでファイル名の訂正が必要です。
一方、私見ではありますが、earch_indexes.csvのデータは管理画面の「ユーティリティ」>「検索インデックス」からいつでも再構築できるものなので、上述のような面倒な修正をせずとも、すんなりデータレコードを削除してしまうのも一考かと思います。あるいは、データレコードなしでも成立するテーブルなので「BcSearchIndex」フォルダ自体、そもそも初期データに無くてもよいのかと思います。 - sites.csvについて、4系では、サブサイト用に用意されていたテーブルの様でしたが、5系では、サブサイトを含むサイト情報全般を扱うように統合されている様子。よって、
"id"
カラムの値"1"
のレコードにメインサイトのサイト基本設定の情報「サイト名」「サイトタイトル 」「サイト基本キーワード」「サイト基本説明文」といった項目に準じた内容をそれぞれ"display_name"
、"title"
、"keyword"
、"description"
カラムに記述し、「テーマ」と「公開状態」を"theme"
、"status"
カラムに追記する必要があります。
なお、4系「Omotenashhi2」テーマの初期データ「default」のsites.csvには、非公開ステータスのサブサイト(ケイタイ、スマートフォン用)の記述がありましたが、今回のマイグレートでは、混乱しないように一旦削除しています。
以下、サンプルです。"id","main_site_id","name","display_name","title","alias","theme","status","keyword","description","use_subdomain","relate_main_site","device","lang","same_main_url","auto_redirect","auto_link","domain_type","created","modified" "1",,,"和食処 部井紗 [デモ]","和食処 部井紗 [デモ]",,"Omotenashi2","1","和食処 部井紗,もつ鍋,水炊き,お刺身","「Omotenashi2」和食店や和雑貨店など、「和」を基調とした店舗に向けたテーマデザインです。レイアウトはシンプルに作られているので、企業向けのテーマとしてもお使いいただけます。",,,,,,,,,,
- 「BcBlog」フォルダ内のblog_posts.csvについて、5系から「title」カラムが追加され、これまでブログタイトルに使用されていた「name」カラムを「title」カラムに変更した模様。本来であれば、
"title"
カラムを追加すべきですが、どうも「name」カラム自体は利用されていない様子なので、今回は、便宜的に「name」カラムの名称を「title」カラムに変更して対応しようと思います。
以上で、4系「Omotenashhi2」テーマ初期データの5系マイグレートは完了です。