Re: 「スタック」を移動してしまい元に戻したい

2021年12月14日 at 17:18

本番環境でConcrete システムの復帰ができましたので情報共有いたします。
ご協力いただきありがとうございました。

(以下、作業内容)

本番環境のデータを用いたステージング環境でのテストを行った結果、PagesテーブルとPagePathsテーブルの内容を編集することで、問題を解決することができることがわかりました。
現在のConcrete5のDBをコピーしたステージング環境で検証を行った結果、Pages および PagePaths テーブルのstackに関連するレコードを編集することで、不具合を改善することができた。スタックの子レコード、孫レコード以下まで修正することが必要だった。
Pagesテーブルについては、以下を行った。

UPDATE `Pages` SET cParentID = 0 WHERE cFilename = "/!stacks/view.php";
UPDATE `Pages` SET cIsSystemPage = 1 WHERE cFilename = "/!stacks/view.php";
UPDATE `Pages` SET cIsSystemPage = 1 WHERE cParentID = 154;
UPDATE `Pages` SET siteTreeID = 0 WHERE cFilename = "/!stacks/view.php";
UPDATE `Pages` SET siteTreeID = 0 WHERE cParentID = 154;

UPDATE `Pages` SET cIsSystemPage = 1 WHERE cParentID IN (...);

UPDATE `Pages` SET siteTreeID = 0 WHERE cParentID IN (...);

UPDATE `Pages` SET cIsSystemPage = 1 WHERE cParentID IN (...);

UPDATE `Pages` SET siteTreeID = 0 WHERE cParentID IN (...);

UPDATE `Pages` SET cIsSystemPage = 1 WHERE cParentID IN (...);

UPDATE `Pages` SET siteTreeID = 0 WHERE cParentID IN (...);

PagePaths テーブルについては、以下を行った。

UPDATE `PagePaths` SET cPath = REPLACE(cPath, "/「移動してしまったディレクトリ」/!stacks", "/!stacks") WHERE cPath LIKE "%!stacks%"

上記を行った結果、以下の問題を解決し、観測範囲ではその他の不具合も見受けられない状態にすることができた。

i スタックがシステムページのツリー配下でなく、各言語のツリーの配下に位置してしまう
ii スタックの新規追加を行うとデータベースのconstraintに違反するというエラーが出る
iii スタックがダッシュボードの一覧ページに表示されない

タグ: