【環境情報】
・baserCMSのバージョン:5.0.7
・レンタルサーバー名:自前(MIRACLE LINUX 9.2)
・使用テーマ: BcThemeSample
・PHPスキル(自己評価): B
・DB MariaDB10.5.22-1
ver 4.8 からエクスポートしたデータを
ver 5.0.7 でマイグレーションしようとしたところ
エラー: アドレス ‘/baser/admin/bc-db-migrator/migrator/index’ に送信されたリクエストは無効です。
となります。
logs/error.log には下記が出ていました。
Base table or view already exists: 1050 Table ‘bak__baser_core_phinxlog_’ already exists in /var/www/basercms/html/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/PdoAdapter.php o
n line 192
already exists となっていたので、
bak__baser_core_phinxlog_
のテーブルを削除して、再度試したところ
下記が出ました。
Caused by: [PDOException] SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘basercms.bc_new_mysite_pages’ doesn’t exist in /var/www/basercms/html/vendor/cakephp/cakephp/src/Database/Statement/MysqlStatement.php on line 39
お手数ですが解決方法をご教授いただけないでしょうか。
どうぞよろしくお願いいたします。
BcDbMigratorをインストールしているbaserCMSでは、DBテーブルのプレフィックスを使用していますでしょうか?
プレフィックスを使用していると、
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'basercms.bc_new_mysite_pages' doesn't exist
というエラーが出る場合があります。
もし、可能であれば、BcDbMigrator専用で、プレフィックスのない状態の別のbaserCMSの環境を用意し、
そちらでマイグレーションを行い、ダウンロードしたものを、実際に使用する予定のbaserCMS側でデータ復元されたら、うまくいく可能性があります。
@katokaisya
ご返信ありがとうございます。
ご指摘の通りプレフィックスを使用していました。
プレフィックスを設定しない状態で、マイグレーションをかけると正常に処理できました。
ありがとうございます。
しかし、実際に使用する baserCMS でデータを復元しようとしたら下記エラーがでました。
データの復元に失敗しました。ログの確認を行なって下さい。SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table ‘basercms.mysite_bak__baser_core_phinxlog_’
こちら解決できないでしょうか。
どうぞよろしくお願いいたします。
マイグレーション時、旧サイトの一部のプラグインのDBのデータが原因でエラーで止まることがありましたが、
今回のパターンの場合、
このエラーの出方から考えると
最初の投稿にあった
この作業が影響しているか、
もしくは、
データ復元時の一次ファイルが悪さをしている可能性が考えられます。
一次ファイルが原因の場合は
復元先baserCMSの tmp/schema/
フォルダが空になっているかどうか確認できますでしょうか?
(エラーで止まると、空にならないことがあります。)
もし、空になっていなかったら、一旦空にしてから再度復元をテストしてみてください。
また、DBマイグレーターが1/25にバグフィックス更新されているので、
DBマイグレーターも最新版に変更してテストされると良いかもしれません。
@katokaisya
tmp/schema/ を空にして再度試したところ、正常にインポートできました。
大変助かりました。
ありがとうございます。