8.3.1→8.3.2のアップデートでエラー

2018年1月23日 at 10:18

23日に8.3.2がリリースされていたので早速アップしようと思ったのですが以下のエラーが出てしまいました。
Cannot override final method Concrete\Core\Updater\Migrations\AbstractMigration::up()

concreteディレクトリの上書きアップロードです。
ファイルアップ時の問題かと思い2度試しましたが変わりませんでした。

サーバーのエラーログを見てみると、
/concrete/src/Updater/Migrations/Migrations/Version20170803000000.php on line 49
とあるのですが、ダウンロードしたZIP内にはVersion20170803000000.phpが存在していません。

Xserver
PHP7.1.4
5.7.16 - MySQL Community Server (GPL)


【解決】
調べたところ、8.3.0には該当ファイルが存在しています。
8.3.1のダウンロードファイル(ZIP)内からは存在していません。
8.3.0から上書きアップデートで8.3.1にするとVersion20170803000000.phpが残ります。
この状態だとエラーが起きるので、サーバーからVersion20170803000000.phpを削除するとエラーが出なくなります。
8.3.1へのアップデートではエラーが出ませんが、8.3.2ではエラーになります。

タグ:

Re: 8.3.1→8.3.2のアップデートでエラー

2018年1月23日 at 11:22
ありがとうございます。

すいません、確認です。

> 8.3.0から上書きアップデートで8.3.1にするとVersion20170803000000.phpが残ります。

つまり、8.3.0 -> 8.3.1 への上書きアップデートとは、
FTP なんかで、8.3.0 のコアファイルを削除せずに、ひたすら上書きアップデートをおこなったということでしょうか?

8.3.0 ディレクトリを削除してから、8.3.1 ディレクトリをアップロードしていた場合は、migration ファイルは存在しないので、8.3.1->8.3.2 できるという理解でいいですかね?

検証ありがとうございます。
 

Re: Re: 8.3.1→8.3.2のアップデートでエラー

2018年1月23日 at 11:41
削除せずにFTPでひたすら上書きです。
8.3.0のconcreteディレクトリを削除して8.3.1のconcreteディレクトリをアップロードした場合は8.3.2にできるという事になります。
 

Re: 8.3.1→8.3.2のアップデートでエラー

2018年1月23日 at 22:05
ありがとうございます!

自分のところでも、concrete ディレクトリ上書きアップデート方式をとったとしても、

・concrete5 最新版のファイルをダウンロード
・concrete フォルダを concrete_new などにリネーム
・そのまま FTP などでアップロード
・現状の concrete フォルダを concrete_old に変更
・concrete_new を concrete フォルダに変更
・アップグレードを実施

などの方法をとっています。

こうすることで、サイトのメンテナンスタイムを最小限に抑えられるからです。

サーバーの管理が得意な方は、シェルスクリプトを用意しています。

参考:アップグレードシェルスクリプト
http://github.com/concrete5cojp/concrete5-upgrade-shell
 

Re: 8.3.1→8.3.2のアップデートでエラー

2018年1月26日 at 17:13
自分が扱っている環境だと、concreteフォルダをZIPにしてFTPでアップしてから解凍がいいかもです。
なんとなく上書きでやっていましたが、今度からはこのようにやろうと思います。
ありがとうございました。