Concrete CMS バージョンアップしました。v 9.1.1

こんにちは

MAMPでv8.5.7で開発環境を作成し
本環境から、全データ(.sql&File)を移行し
Concrete CMS 9.1.1にバージョンアップしました。

まだ、95%程の移行率で、
(もしかしたら、残り5%への対応の何かヒントを戴けるのではないかとの期待も)

v9への移行事例が少ないことから
自分の移行(MAMP環境ですが)環境を共有したいと考えました。

「Concrete CMS バージョン 9.1.1」

当初予定では、v8.5.6から、v9.0.2にバージョンアップする予定でした。

しかし、テーブルの数の増加(v8.5.6、v8.5.7、v9.0.2)や、
特定のテーブルでのフィールドの消滅(なくなった)ことによるデータ移行対応
(エクスポートした.sqlデータの加工及びインポート、本環境の方のバージョンアップv8.5.6からv8.5.7、開発・テスト環境の方もv8.5.7で新規インストールするなど)、でかなり、手間取りました。

現在までに、5つの工程をブログにしました(画像キャプチャや、一部スクリプト記述も)ので、

ご参考までに、

  1. 新しいConcreteCMSの開発環境をローカル環境に構築しています。 :: スマホ最適化サイト
    新しいConcreteCMSの開発環境をローカル環境に構築しています。

2.ConcreteCMSの開発環境をローカル環境に構築2

3.Concrete CMS開発環境をローカルに構築Ⅲ

4.Concrete CMS開発環境をローカルに作っていますⅣ

  1. Concrete CMS開発環境をローカルに作っていますⅤ :: スマホ最適化サイト
    Concrete CMS開発環境をローカルに作っていますⅤ
1 Like

@Jun1chi すごい大作!おつかれさまです!

取り急ぎ CollectionSearchIndexAttributes テーブルの構造が違うのはちょっと他に原因があるのではないかとは思います。

もうちょっと読ませていただいて、5% のところがどこなのか、みてみますね。

1 Like

よろしくお願いします。

Blockquote

FileImageThumbnailPaths って?
名前からして・・・?
このテーブルのレコード件数が0件何です。
v8.5.7v9.1.1テーブル対比 表をExcelで作った時、レコード件数もphpMyAdmin のテーブル表示を.txtで吐き出し、Excelでインポートした後、Vlookupした表を作っておいたのです。それをフィルタ ーして、v9.1.1が0件で、v8.5.7が0件でないものを出力 したのが、下の表です。(FileImageThumbnailPaths 以外もありますが、Table名からして)
あとは、aitc_cf840.sqlのデータを確認して見ますが、まずはご報告として。

v9.1.1vsv8.5.7

この後、

「FileImageThumbnailPaths抽出」

[aitc_cf840.sql]をVS Codeで開いて「FileImageThumbnailPaths」で検索します。
INSERT INTO 部分(10,266行分)を抽出して

Sublime Textに貼り付けて、FileImageThumbnailPaths.sqlで保存します。

phpMyAdminから、FileImageThumbnailPaths.sqlをインポートします。

無事にインポートできました。

10,266件

画像は撮りませんでしたが、やはりサムネイル部分の画像が表示されず"#"のままです。
ここで、先日の画像「Library-600-400-028-040.jpg」のパス

/application/files/2515/5368/9105/Library-600-400-028-040.jpgは、通常の画像の格納先と気付きました。
そして、
改めてサムネイル画像のパス「/application/files/thumbnails/」を確認し直しました。

「疑念」

そして、これ(FileImageThumbnailPaths)のサムネイル画像パスは、

INSERT INTO FileImageThumbnailPaths
(fileID, fileVersionID, thumbnailTypeHandle, storageLocationID, thumbnailFormat,
path, isBuilt, lockID, lockExpires) VALUES
– ・・・・・・・・・・・・・・・・・・・・・・・・・・・・前略,
(1852, 1, ‘file_manager_detail’, 1, ‘jpeg’,
‘/thumbnails/file_manager_detail/2515/5368/9105/Library-600-400-028-040.jpg’, 1, NULL, NULL),

(1852, 1, ‘file_manager_listing’, 1, ‘jpeg’,
‘/thumbnails/file_manager_listing/2515/5368/9105/Library-600-400-028-040.jpg’, 1, NULL, NULL),

(1852, 1, ‘file_manager_listing_2x’, 1, ‘jpeg’,
‘/thumbnails/file_manager_listing_2x/2515/5368/9105/Library-600-400-028-040.jpg’, 1, NULL, NULL),
– ・・・・・・・・・・・・・・・・・・・・・・・・・・・・後略,

6番目のfield"path"の、サムネイルのパスは、それぞれ、

‘/thumbnails/file_manager_detail/2515/5368/9105/Library-600-400-028-040.jpg’
‘/thumbnails/file_manager_listing/2515/5368/9105/Library-600-400-028-040.jpg’
‘/thumbnails/file_manager_listing_2x/2515/5368/9105/Library-600-400-028-040.jpg’
です。

MAMP上は、
C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_detail\2515\5368\9105\Library-600-400-028-040.jpg あり

C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_listing\2515\5368\9105\Library-600-400-028-040.jpg あり

C:\MAMP\htdocs\concrete8.5.7\application\files\thumbnails\file_manager_detail_2x\2515
配下に"5368"フォルダがありません。

サムネイルはサイズによって生成しないものもありますから、存在しないものがあっても良いのですが
念のため、XSERVERの方も確認します。(FTPで長時間要した為、MAMP側と同期がとれているか)
同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
同様に、\2515\5368\9105\Library-600-400-028-040.jpg あり
同様に、\2515\配下に"5368"フォルダがありません。

FileImageThumbnailPathsをMAMP上のTableインポートしたのですが、
サムネイル画像の場所は’#'表示のまま、画像は表示されません。

結果から判断ですが、

やはり、"path"の値の画像のパス’/thumbnails/file_manager_~~’がうまく渡されていない様です。

この後、"path"の値の画像のパスの上位に’/concrete8.5.7/application/files’を付けて、
'/concrete8.5.7/application/files/thumbnails/file_manager_~~’で、FileImageThumbnailPaths.sqlを更新し
インポートしてみようと思います。

searchThumbnailPathGrepで探してみました。
気になる記述を見つけました。

$rs = $database->executeQuery(‘SELECT * FROM FileImageThumbnailPaths WHERE isBuilt = 0 ORDER BY ’ . $database->getDatabasePlatform()getLocateExpression(’?’, ‘path’) . ’ DESC LIMIT 1’, [$searchThumbnailPath]);

これは、ThumbnailMiddleware.phpにあり、
C:\MAMP\htdocs\concrete8.5.7*application**files*\tmp\1616119373\concrete5-8.5.5_remote_updater\concrete\src\Http\Middleware配下にありました。
もし、この.phpが有効なら、サムネイルの画像のパス’/thumbnails/file_manager_~~’のままです。

@Jun1chi 取り急ぎ

まず

CollectionSearchIndexAttributes

テーブルの中身が違うことについて。

これは、検索インデックスの情報を保持しているところで、
8.5.7 と 9.1.1 では、実質根本的な仕様の違いはないです。

ただ、サイトに設定してある索引インデックスすると設定してあるページ属性によってカラム変化します。

検索ブロックで検索を希望するページ属性の数を増やすとこのテーブルのカラムの数も増減します。

多分、テーブルに違いが出たのは、バージョンアップとは関係がないです。

F ileImageT humbnailP aths

これは、各画像のサムネイル画像のどのタイプがどこに保存されているかを保存しているものです。
このテーブルも v857 から v911 への変更はありません。

また、サムネイル画像パスを生成するジョブなどを実行しないとテーブルの中に保存されません。新規インストールであると空です。ファイルをアップロードすると追加されていきます。

なので、違ってくると思います。

取り急ぎ。

お世話様です。

お返事ありがとうございます。

上記は認識しておりました。

ただ、.sqlでインポートしたFileImageThumbnailPathsのサムネイルのパスが、

このまま(/thumbnails/~)だと認識できず、画像が表示されない原因ではないかと考えています。(というのは少なくとも上位パスに” /application/files/”があり、“/application/files/thumbnails/~”でないといけないのではないか?)(これは、先に挙げた、「別のパス」に於いても、Localサイトの特定のページが表示されない・スライダの画像が表示されない問題があり、.sql上のパスをエディタで強制的に置き換えしたら、ページが表示される様になったことに起因するものと同様ではないかと考えたからです。)

念のため、Localで「サムネイルの生成」中です(自動化>タスク)

table_of_contents.jpg

サムネイル生成しなおしましたが、替わりありません。
エクスポート・インポートの.sqlを見直しました。(添付)
FileImageThumbnailPathsのパスが”’/thumbnails/file_manager_~~’”のままなら、
上位のパス(/application/files/)どのように取得されるのか(php?名)を知りたいものです。

少なくとも、本環境(Hosting)側では、
‘/thumbnails/file_manager_listing/4315/3189/6974/375x150-003.png’”などで、問題なく画像が表示されていますので、

Localでは、何故表示されないのか?
上位パスが取得できない(取得されない)何らかの原因があるはずです。

別の視点➡v9の問題(バグ?)

MAMP:(v9.1.1)環境の画像が表示されていないページのソースコードを取得し
正常に画像が表示されているHosting:(v8.5.7)環境のページのソースコードも取得し
WinMergeで比較してみました。(下図)

portfolio_Library_Comp-1920-639-176.jpg

<source srcset=“~~~”>の違いはあるものの、
問題はそこではないんです。

<mg>タグの問題?
WinMerge画像(左側:Hosting:正常/右側:MAMP:画像表示できない)

左側:Hosting:正常
211 <img src=“https://a-itc.info/application/files/2515/5368/9105/Library-600-400-028-040.jpg” alt="#" class=“img-responsive”>
右側:MAMP:画像表示できない
214 <img src alt="#" class=“img-responsive”>

そうです。src=""の定義が漏れているんです。

上の画像は見辛いと思いますので、それぞれの該当箇所のソースコードの画像を下に添付します。
(見やすさ重視の為、sourceには改行追加+各タグ前調整をしています)

1投稿1画像の制限がある様なので、添付画像の為、投稿を分けます。

Hosting:正常
portfolio_Library_Hosting_s-1920-826-132.jpg

MAMP:画像表示できない
portfolio_Library_MAMP_s-1920-1000-140.jpg

この様な現象は、画像が表示されない他のportfolioページでも同じ状態です。
portfolio_Comp-1920-845-224.jpg

v8.5.7とv9.1.1環境の違い(Hosting vs Local)もありますが、
この様に見えると、v9のバグではないか?とも思えるのですが、どうでしょうか?

@Jun1chi こんにちは。
スライダ画像ブロックは何かカスタマイズをされていますか?

であれば、view.php で読み込んでいる img ヘルパーの記述がちょっと変わったので、
もしかしたらそれが原因かもしれません。

ありがとうございます。

スライダのカスタマイズはしていません。

カスタマイズは、スマホで「電話」ボタンをBlog以外のページの下部に常駐させるために

\application\themes\stucco\inc配下の、header_top.phpに

の追加と

スタックで、タップで「電話」ボタンを.png画像を各ページに配置しています。

あとは、Blogページで、拡張HTMLブロックにHTML記述とインラインcssの追加くらいです。
SP_TEL05G0-0641-0061-012

上記の一部がTAGとして認識され表示されなかったので、一部を変更して追記します。

header_top.phpに追加は、以下の内容です(<を<に、>を>に変更しています)
<link rel=“stylesheet” href="<?php echo $view->getThemePath()?>/css/telBtnFix.css">の追加

@Jun1chi こんにちは。Stucco をお使いということでしょうか?

であれば、カスタマイズはしていなくても、Stucco のテーマがそもそも V9 にまだ対応していないのが原因だと思います。

今、Stucco の修正対応してもらってると思います。

ちょっとお待ちいただく必要があると思います。

こんにちは、
はい、Stucco を使用させていただいております。

そうですか、では本環境のVersionは、しばらくこのままで行こうと思います。

ちなみに、
このまま開発・テスト環境の方で、Themeをv9対応のElementallyに変更することは可能でしょうか?
「Stucco」は「Elementally」ベースと伺っています。
ありがとうございます。

お世話様です。

MAMP環境に、新しくV8.5.7で空の Elemental テーマで作成しました。

この環境に、本環境で作った全データ(データベース&ファイル)をインポート(デプロイ)しました。
(この状態で、ほぼMAMPサイトを閲覧・更新可能な状態まで持ってこれました)

このあと、v8.5.8、v8.5.9そしてv9.1.1へバージョンアップ(Stuccoを使用しないで)したいと考えています。

テーマStuccoを使用しないで、
カスタマイズした.css等を読み込ませるために、
\concrete\themes\elemental\elementsのheader_top.phpをカスタマイズ(下記の様な内容を追加して)して

<link rel=“stylesheet” href="<?php echo $view->getThemePath()?>/css/telBtnFix.css"> 等、

別フォルダに保存して、
Elemental テーマのheader_top.phpを
オーバーライド(オーバーレイ)したいと思います。

この場合、\concrete\themes\elemental\elements配下に置くと
バージョンアップで置き換わってしまうと思いますので、

Elementalをオーバーライドする
header_top.phpと追加.cssの配置場所(置き場)は、
どのフォルダ配下にすれば良いか教えて戴きたいと思います。