【3系→4系】DBマイグレーターでアップロードするとエラー

【環境情報】
・baserCMSのバージョン:4.8.2
・レンタルサーバー名:ローカル環境 MAMP
・PHP:8.1.13
・使用テーマ: bcColumn

DBマイグレーターを使って3.0.12のサイトのバックアップデータをアップロードすると以下のエラーが出て先に進めません。

エラー: SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘bc_old_approver_configs’ already exists

何か試してみる方法があれば教えてください。

以下、参考になると思います。

以下、気になる点。

  • 環境情報に記載のPHP8.1では、DBマイグレーターは、動かないと思います。
  • 3系のバックアップデータは、baserCMS 3.0.13以上でないとプラグインのデータが全てダウンロードできない場合があるようです。

情報ありがとうございます。
PHPのバージョンについては、5.4.45や7.4.33に切り替えてもやってみたのですが同様のエラーでした。8.1でエラーが出たデータベースの状態でバージョン切り替えて行ったので、そもそも8.1で動作させた時点でデータベースが不都合な状態になるということであれば、クリーンな状態でやっていないのでそのせいかもしれませんが。そのような可能性は考えられるでしょうか。

いただいた参考ページは参照して作業してみていました。

  • 3系のバックアップデータは、baserCMS 3.0.13以上でないとプラグインのデータが全てダウンロードできない場合があるようです。


上記の内容を考えると、まずは3系のバージョンを上げてからバックアップデータを作成してみるとよいかもしれません。後ほど試してみます。

いずれにしても、プラグインのリリース時期を考えても、5.6以降は、あまり好ましくないかもしれませんね。

あるいは、 「baserCMS3系から4系への移行方法」に記載のバッチ対応でしょうか。

ちょっと思ったんですが、

approver_configsっていうテーブル名は、あまり聞き覚えがないんですが、プラグインか何かでしょうか?
全てのスキーマとバックアップデータを移行することにこだわらないのであれば、バックアップデータから必要な物だけを選んで適用してみてはどうでしょうか?

なるほど、バッチ対応のところまではしっかり読めてなかったので試してみます。

approver_configsっていうテーブル名は、あまり聞き覚えがないんですが、プラグインか何かでしょうか?
全てのスキーマとバックアップデータを移行することにこだわらないのであれば、バックアップデータから必要な物だけを選んで適用してみてはどうでしょうか?

プラグインだったかもしれません。バッチでうまく行かない場合は、必要なデータだけにしてやるのも試してみます。いろいろとアイデアいただき有り難うございます。試した結果は後ほどこ報告します。

パッチを当てるのと3.0.16にアップしてみるのを試してみました。
どちらも同じ結果で、エラーにならずに進むものの、以下のメッセージが表示されました。

バックアップデータのマイグレーションが失敗しました。バックアップデータに問題があります。ログファイルを確認してください。

ログファイルは、多分これかなと思って見てみたのですが、「/app/tmp/logs/error.log」で以下のログがありました。

Array
(
    [self_publish_end] => Array
        (
            [0] => 公開終了日は、公開開始日より新しい日付で入力してください。
        )

)

ブログや固定ページの公開終了日のことかと思ったのですが、どこをどう修正すれば良いか分からず…。何か考えられることがあればお知恵をいただければと思っています。よろしくお願いします。

ちなみにクリーンインストールのbaserCMS3.0.16のバックアップデータで試しにDBマイグレーターでやってみたのですが、当然ながらこちらでは問題なく変換されたデータがダウンロード出来るところまで進んだので、やはりバックアップデータに何か問題があるのだろうなと思っています。

3系の環境がないので、ノールックのコメントですが、エラーメッセージのapprover_configsテーブルを利用しているプラグイン?の所在を、管理画面で確認してみてはいかがでしょうか?
サイト内で利用しているプラグインならば、なんらかの対応が必要なのかもですが、もし、利用していないものであれば、事前に管理画面側でプラグインとテーブルの削除をした上で、マイグレーションにかければ、すんなりコンバートできるのかもしれませんし。

ありがとうございます。完全ではないですが、なんとか4系にデータをインポートするところまで行ったので報告です。

エラーメッセージのapprover_configsテーブルを利用しているプラグイン?の所在を、管理画面で確認してみてはいかがでしょうか?

↑こちら、途中でお伝えが抜けていましたが先の段階で3系のサイトで対象のプラグインを削除してバックアップデータをエクスポートしました。公開承認のプラグインでした。

また、固定ページで公開開始日のみ日付が入っているものがあったので、その日付も削除しました。

上記のバックアップデータを使うとDBマイグレーターでエラーなく処理できました。

また、DBマイグレーターを動作させている4系の環境も勘違いしていました。4.8.2とかで動作させていたのですが、そもそもDBマイグレーターが4.1.1までしか対応していなかったので、最後のダウンロードの部分がうまく動作しない状態になっていました。4.1.1でDBマイグレーターを動作させるようやり直したら変換されたバックアップデータがダウンロードできました。

このデータを4系サイトにインポートしたら、なんとかページの内容の表示はできました。まだレイアウトの崩れなどあるページはあるものの、手作業で修正していけば何とかなりそうです。

@GUSSAN さん、色々とヒントをいただけてありがとうございました!
大変助かりました!