いろいろ試行錯誤した結果、
・8.5.2で c5:update --rerun を行う
・8.5.2に8.5.3の Version20190309000000.php をコピーし、migration:execute 20190309000000 --up を行う
(これをやらないと8.5.3でCLIツールが起動できない)
・concrete ディレクトリを8.5.3に置き換えて、c5:update を行う
という手順で解決しました。
しかし、今までのアップデートではこんなことは起こらず、2つの別々のWebサイトの環境で両方同じエラーが出てたし、アップデートで過去のマイグレーションファイルが編集されてたりするし、なんかのバグなんじゃないかな…という気はしています…。
色々と勉強になりました。ありがとうございました!
Re: 8.5.2 → 8.5.3のアップデートに失敗する
2020年6月10日 at 17:03
おそらく、20190309000000 のマイグレーションを8.5.2にコピーして実行したせいで、20190309000000 まではマイグレーションが終わっていると言う状態になってしまい、8.5.3で必要なマイグレーションが途中までスキップされているのだと思います。
再度 SystemDatabaseMigrations テーブルを見ていただいて、8.5.2に含まれる最新のマイグレーションバージョン 20190925072210 より大きな日付のレコードを全て削除した上で、 c5:update を再チャレンジしてください。
Re: 8.5.2 → 8.5.3のアップデートに失敗する
2020年6月15日 at 14:13
Re: 8.5.2 → 8.5.3のアップデートに失敗する
2020年6月15日 at 15:57
手元のリポジトリでdiffを見たところ、8.5.2 → 8.5.3のファイルで、
の過去のマイグレーションファイルが一部編集されているようです。
今回の問題になったTreeFileFolderNodesテーブルも編集内容に入っていました。この辺の開発の作法にあまり詳しくないのですが、リリースされたマイグレーションのファイルを編集するといろいろ不具合が起こるんじゃないかなと思いまして…。
/concrete/src/Updater/Migrations/Migrations/Version20141024000000.php
/concrete/src/Updater/Migrations/Migrations/Version20160725000000.php
/concrete/src/Updater/Migrations/Migrations/Version20170316000000.php
の過去のマイグレーションファイルが一部編集されているようです。
今回の問題になったTreeFileFolderNodesテーブルも編集内容に入っていました。この辺の開発の作法にあまり詳しくないのですが、リリースされたマイグレーションのファイルを編集するといろいろ不具合が起こるんじゃないかなと思いまして…。
Re: 8.5.2 → 8.5.3のアップデートに失敗する
2020年6月16日 at 13:42
GitHubで報告しましたが、他にも漏れているマイグレーションが存在しそうです。
http://github.com/concrete5/concrete5/pull/8433
特定のバージョンのマイグレーションのみ実行する方法をお伝えしましたが、20190309000000以降全て再実行した方が良いかもしれません。
concrete/bin/concrete5 c5:update --since=20190309000000 --rerun
GitHubでは修正が議論されていますので、現時点での動作に支障がなければ次のバージョンをお待ちいただいても問題ないかと思います。
http://github.com/concrete5/concrete5/pull/8433
特定のバージョンのマイグレーションのみ実行する方法をお伝えしましたが、20190309000000以降全て再実行した方が良いかもしれません。
concrete/bin/concrete5 c5:update --since=20190309000000 --rerun
GitHubでは修正が議論されていますので、現時点での動作に支障がなければ次のバージョンをお待ちいただいても問題ないかと思います。
Your post has been saved and will be published after approval by the forum moderator.
sngazm
Re: 8.5.2 → 8.5.3のアップデートに失敗する
SystemDatabaseMigrationsテーブルを確認しましたが、20190925072210より大きな日付のレコードはありませんでした。
この場合、一旦20190309000000から先のレコードを全て削除して、もう一度8.5.3でc5:updateしたほうがいいのでしょうか?