ここから本文です

baserCMS開発ブログ

baserCMS 2.1系 から baserCMS3に移行する

こんにちは、開発チームの ryuringです。
今回は、baserCMSの baserCMS Advent Calender の 11日担当として頑張ります!よろしくお願いします!
※ 個人のブログがドメイン切れのようで・・・このbaserCMS公式の開発ブログをお借ります

先日、ようやくbaserCMS3をリリースする事ができましたが、標準で2系からのアップグレードをサポートしないという方針となりました。
理由は、大幅なアーキテクチャ変更により、フォルダ構成や、クラスファイルの名称、そして、APIの記述方法が変わってしまった為です。

ただ、「せっかくこれまで baserCMS を使ってきたのに、最新版に移行できないなんてひどすぎる」という方も多少はいらっしゃるかと思います。
という事で、Advent Calender の為、昨日の夜中に、えいやっとデータベースデータの3系対応ツールを作ってみましたのでここでご紹介させて頂きますね。

 

ただ、いくつか条件があり、その条件をクリアしている必要がありますのでご注意ください。

  • baserCMS 2.1 以上を利用している。
  • テンプレートはテーマとして作られている。
  • 大幅なカスタマイズは行なっていない。
  • 利用しているプラグインは3系対応のものが存在する。
    (なければプラグインの利用をあきらめるか3系に対応させる必要あり)

 

そして、必要なものは、次のとおりです。

  • 新しいサーバー領域(既存のbaserCMSをそのままアップグレードはできません)
  • 3系に対応したプラグイン
  • BcAddonMigratorプラグイン(テーマの3系対応に利用)
  • BcDbMiguratorプラグイン(今回作ったもの。データベースデータの3系対応に利用)
  • files フォルダ(アップローダー等でアップロードしたデータが入ってます)
  • 既存サイトで利用しているテーマフォルダ
  • 既存サイトのバックアップデータ

 

おおまかな移行手順は、次のとおりです。

  • 新しいサーバ領域にbaserCMS3をインストールする
  • 3系に対応したプラグインと BcAddonMigrator 、BcDbMigrator を /app/Plugin/ に配置する
  • files フォルダを、/app/webroot/files/ として配置する
  • 既存サイトのテーマを /app/webroot/theme/ 内に配置する
  • BcAddonMigrator を利用して、既存のテーマを3系対応する
  • BcDbMigrator を利用して、既存サイトのバックアップデータを3系対応する
  • 3系対応したバックアップデータを元にレストア処理を行う
  • 必要なプラグインをインストール、有効化する
  • 固定ページを書き出す

 

では、手順にそって簡単に説明します!

 

baserCMS3をインストール

まずは、baserCMSの最新版をダウンロードし、既存サイトとは、別の領域に baserCMS3をインストールしてください。

download.png

 

プラグインを設置する

これまで使われていた、ファイルアップローダーやその他のプラグインの3系のものをプラグインダウンロードページ等より集めます。
3系のものがリリースされていない場合は、ご自分でBcAddonMigratorを使うなどして3系対応するか、残念ながらあきらめて3系対応のものが出るのを待ちます。

それから、テーマの3系対応の為に、BcAddonMigrator を GitHub よりダウンロードします。

BcAddonMigrator.png

 

そして、既存サイトのデータベースデータのバックアップを3系対応する為、 BcDbMigrator を、これまた GitHubよりダウンロードします。

BcDbMigrator.png

集めたデータを新しいサイトの /app/Plugin/ に配置します。(僕はローカル環境でやりました)

plugin_list.png

 

既存サイトの必要なデータを準備する

既存サイトで必要なものは、データベースデータのバックアップと、ファイルアップローダー等でアップロードしたファイル群、そして、テーマフォルダです。

データベースのデータは、管理システムよりダウンロードします。
システム設定を開き、サブメニューにある、データメンテナンスをクリックします。
ダウンロードボタンをクリックすると、バックアップデータをダウンロードできます。

data_maintenance.png

アップロードしたファイル群は、FTP等でダウンロードします。
必要なフォルダの場所は、/app/webroot/files/ です。僕は Cyberduck でダウンロードしました。
※ 下記スクリーンショットの環境は、配置構成をカスタマイズしているので、ドキュメントルートの直下に files が存在してます。

files.png

 

そして、同様にテーマフォルダをダウンロードします。
※ このフォルダも配置構成をカスタマイズしてるので、ドキュメントルートの直下に存在します。

theme.png

 

files と テーマフォルダを設置する

/app/webroot/files/ として files フォルダを設置します。既に存在すると思いますので、上書きします。
そして、/app/webroot/theme/ フォルダ内にダウンロードしてきたテーマフォルダを設置します。

files_theme.png

 

バックアップファイルを3系対応する

だいぶ準備ができてきたので、いよいよ baserCMS3の管理システムにログインします!
まずは、データベースのデータの準備です。プラグイン管理より、BcDbMigratorをインストールし、管理ページに移動します。
そして、既存サイトからダウンロードしたバックアップファイルをアップロードします。
そうすると、3系用にマイグレーションされたデータをダウンロードする為のボタンが出てきますのでクリックしてダウンロードです。

db_migrate_1.png

 

テーマを3系対応する

次は、デザインテーマの番ですね。次は、BcAddonMigrator を利用します。
BcDbMigrator 同様、プラグイン管理よりインストールし、管理ページに移動します。
画面内に、プラグインマイグレーションとテーママイグレーションの2つのメニューがありますので、テーママイグレーションをクリックします。

theme_migrate_1.png

 

次の画面では、マイグレーション対象のテーマがリストに出てきますので、選択して実行ボタンをクリックします。
これで3系対応は基本的に完了ですが、カスタマイズしている場合など、マイグレーションツールで全ての変換を完了する事ができないので注意が必要です。
画面上の「手動で作業が必要な事項」を参考に、テーマの調整を行なって下さい。

theme_migrate_2.png

 

また、この中に記載されてないもので注意すべき事がひとつあります。
テーマのテンプレートにおいて、テーマフォルダ内の画像やCSS、Javascriptを、baserCMSの関数を利用せず、直接HTMLタグで記述されている場合、パスが変わっています。

/themed/theme_name/img/xxx.jpg → /theme/theme_name/img/xxx.jpg

テーマフォルダを配置するthemed というフォルダの名称が、theme になっちゃってるんですね。
baserCMSを関数を利用して、タグを出力していた場合は、勝手に変換されますが、直書きされてる場合は、置換処理をしてください。

 

データの復元を行う

あともう少しです。次は、先ほど作成した3系対応のバックアップデータを元に、baserCMS3にデータの復元を行います。
先ほどと同様、システム設定→データメンテナンスを開き、バックアップデータをアップロードします。
特に問題がない場合はいいですが、万が一エラーが発生した場合は、残念ながら再インストールが必要になる事もあります。
その場合は、フォーラムに知らせてください。

data_maintenance.png

 

プラグインを有効化する

3系対応したバックアップデータでは、データの復元の際に、不用意なエラーを発生させないよう、プラグインが全て無効化されるようになっています。
プラグイン管理より一つ一つインストールまたは、有効化してください。3系に対応してないものを有効化した場合、正常動作しなくなる可能性がありますので注意してください。

plugins.png

 

固定ページテンプレートを書き出す

データベースのデータを元に固定ページのテンプレートの書出しをしないと固定ページの表示ができません。
最後に、固定ページ管理のサブメニューにある「固定ページテンプレート書出」を実行します。

pages.png

 

公開ページを確認する

これでホントに最後ですね。フロントを確認します。
おおう、うまい事でけた^^
お疲れさまでした!!

front.png

 

という事で、baserCMS2系から3系への移行は、現在、公式パッケージでは対応していませんが、プラグインを使って移行作業を簡素化する事ができます。
少し大変かもしれませんが、みなさんチャレンジしてみてください!

 

それから、去年に開催されたテーマコンテストが来年1月に開催できそうです。
去年のグランプリは、Macbook Air + 賞金10万円!
今年はどんなラインナップになるかな〜^^

今月中旬には、公式より告知があると思いますのでみなさん奮ってご応募ください!

contest.png

 

 

TIPS 2013/12/11 ryuring
baserCMS最新版ダウンロード

ダウンロード数: ...

最新バーション: ...

Powered by 継続的クラウド型Web脆弱性検査ツール

Google グループグループ
baserCMSユーザー会
baserCMSの最新情報を随時配信中!
メーリングリストに参加
[Eメール]
9月 2017年10月 11月
1234567
891011121314
15161718192021
22232425262728
293031