ここでは BcDbMigrator を利用して、baserCMS4のデータベースを baserCMS5用に変換する手順を説明します。
BcDbMigratorが利用できるのは、baserCMS v4.5.5以上が対象となります。
管理システムの「設定」→「ユーティリティ」 → 「環境情報」を確認し、バージョンが 4.5.5
以上であることを確認してください。
4.5.5
以下の場合は、事前に4系の最新版にアップデートしてください。
baserCMS5用のデータは、baserCMS4のバックアップデータから作成します。
管理システムの「設定」→「ユーティリティ」 → 「データメンテナンス」からバックアップを作成してください。
既存のサイトをそのままbaserCMS5系にアップグレードすることはできません。新しい環境にbaserCMS5をインストールしておく必要があります。
GitHub 、または、baserマーケット 、もしくは、composer より、BcDbMigratorプラグインを取得し、新しい環境の /plugins/
フォルダに配置します。
その後、プラグイン管理よりインストールを実行します。
プラグイン一覧より、BcDbMigratorプラグインの右側にある歯車マークををクリックします。
既存の環境のバックアップファイルをアップロードすると変換が始まります。baserCMS5用への変換が完了するとダウンロードボタンが表示されますのでダウンロードします。
baserCMS4からbaserCMS5へは、ユーザーのパスワードの移行ができません。
変換完了時に、パスワードを表示しますので、控えておいてください。
新しい環境において、全てのユーザーはこのパスワードでログインすることになります。
問題が発生した場合は、ユーザーズフォーラム に報告するか、GitHubのIssue を作成してください。
baserCMS v5.0.7までは、プラグインが全てインストールされている状態でないと、バックアップファイルの復元に失敗します。
新しい環境の管理システムのプラグイン管理より無効となっているプラグインをすべてインストールします。
新しい環境の管理システムの「設定」→「ユーティリティ」 → 「データメンテナンス」からバックアップを復元します。
「データの復元」より、変換したバックアップファイルをアップロードし、復元します。
プラグインなどで、テーブルに key
というカラムを利用している場合は注意が必要です。MySQL8以降では、key というカラムが、予約語であるため、インポート時にエラーとなってしまいます。
/config/install.php
に quoteIdentifiers
という設定を追加し、true
に設定してください。
そうすることでエラーを回避することができます。
return [
'Datasources.default' => [
'className' => 'Cake\\Database\\Connection',
'driver' => 'Cake\\Database\\Driver\\Mysql',
'host' => 'xxxx',
'port' => '3306',
'username' => 'xxxx',
'password' => 'xxxx',
'database' => 'basercms',
'prefix' => '',
'schema' => '',
'persistent' => '',
'encoding' => 'utf8mb4',
'log' => filter_var(env('SQL_LOG', false), FILTER_VALIDATE_BOOLEAN),
'quoteIdentifiers' => true, // この行を追加
],
];
特に問題がなければ、これで、baserCMS4のデータベースをbaserCMS5用の環境に移行することができました。お疲れ様でした。
こちらも合わせてご覧ください。