カスタムフィールドからカスタムフィールドアドバンスドへの移行について2 投稿する

投稿者:matsu  投稿日時:2022-01-24 09:58:13
お世話になっております。
プラグインの「カスタムフィールド」から「カスタムフィールドアドバンスド」へ移行いたしました。

正常に移行が完了しているサイトと、カスタムフィールドで設定をしたサムネイル画像が全て消えてしまっているサイトがあります。

もう一度、移行をやり直すことは可能でしょうか?

可能でありましたら方法をご教授いただけると幸いです。
投稿者:齋藤毅  投稿日時:2022-01-24 10:15:04
移行ですが、カスタムフィールドの方に値を残しているので、再度実行しても良いですが、再実行の前に下記のコードの反映をお願いします。
https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php

ディレクトリ構造を参考にコードの上書きをお願いします。
投稿者:matsu  投稿日時:2022-01-24 10:36:49
ありがとうございます。

/www/SOYCMSインストールフォルダ/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
をサーバーからダウンロードし、
https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
のコードを上書きして、再びサーバーへアップすればよろしいでしょうか。

正常に移行したサイトに影響はありませんか?
移行が正常にされなかったサイトは一先ず、カスタムフィールドに戻しました。

初めてカスタムフィールドからカスタムフィールドアドバンスドへ移行する際には、
カスタムフィールドアドバンスド内にカスタムフィールドの内容をコピーできるボタンがありましたが、
移行後は、カスタムフィールドアドバンスド内に設定したフィールドが追加されてしまっているので、
カスタムフィールドの内容をコピーできるボタンがありません。

どのように再実行をすればよろしいでしょうか。
ご教授いただけると幸いです。
投稿者:齋藤毅  投稿日時:2022-01-24 10:40:23
移行後は、カスタムフィールドアドバンスド内に設定したフィールドが追加されてしまっているので、
カスタムフィールドの内容をコピーできるボタンがありません。
ボタンが消えてしまう事を忘れていました。
現時点ではボタンを再表示させる術がないので、再表示するように改修します。
投稿者:matsu  投稿日時:2022-01-24 10:41:42
ありがとうございます!
投稿者:齋藤毅  投稿日時:2022-01-24 10:57:19
時間がかかりそうですので、再実行するためのHTMLの改修箇所をお伝えします。
/CMSインストールディレクトリ/common/site_include/plugin/CustomFieldAdvanced/config/CustomFieldAdvancedPluginFormPage.html
のファイルの
<!-- soy:display="add_field" -->

<!-- /soy:display="add_field" -->
を削除すれば、実行ボタンが再び表示されます。

/www/SOYCMSインストールフォルダ/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
をサーバーからダウンロードし、
https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
のコードを上書きして、再びサーバーへアップすればよろしいでしょうか。
上記の対応をした後、念の為に/サイトID/.db/sqlite.db をバックアップしてから再度実行してみてください。

正常に移行したサイトに影響はありませんか?
影響がないようにコードを書いていますが、念の為のバックアップをお願いします。
投稿者:matsu  投稿日時:2022-01-24 11:26:02
ありがとうございます。

再実行の方法は、教えていただいた上記の変更を行い、
正常に移行ができなかったサイトの「カスタムフィールドアドバンスド」を開き、
実行ボタンを実行するだけでよろしいでしょうか?
投稿者:齋藤毅  投稿日時:2022-01-24 11:28:16
実行するだけで良いです。
今回の実行でもうまくいかなかった場合は、データの件数に合わせて個別に書き換える必要がありますので、こちらで対応します。
投稿者:matsu  投稿日時:2022-01-24 11:38:14
ありがとうございます。

今回の移行作業で、「カスタムフィールドアドバンスド」内の実行ボタンでコピーを実行しますと、
ほとんどのサイトでタイムアウトになりました。
少し時間をおいて、タイムアウトになったサイトの「カスタムフィールドアドバンスド」を開くと、
コピーされておりましたがこれで大丈夫なのでしょうか?
投稿者:齋藤毅  投稿日時:2022-01-24 11:51:00
大丈夫なのか?はデータベースを確認してみないことにはわかりません。

移行機能ですが、想定される記事数の算出をしておらず、どれ程の記事数とカスタムフィールドのフィールド数まで移行できるのか?が現時点でわかりません。

移行されたか?の目安として、移行は記事IDの小さい順に実行されるので、記事IDが最も大きいもので全ての値が移行されていれば、他の記事の値も移行されていると判断して良いです。

最後の記事で移行されていなければ、丁寧な移行作業が必要になります。
投稿者:matsu  投稿日時:2022-01-24 12:00:00
ありがとうございます。

記事は全て正常に移行できているのですが、
その記事に利用しているカスタムフィールドで作成した項目の「サムネイル画像」と
トップページの「スライド画像」など、画像関係が正常に移行できていない(https://~.jpgを指定していたものが空になっている。)
サイトがありました。

これはやってみないとわからないですね。
投稿者:齋藤毅  投稿日時:2022-01-24 12:56:06
どれ程の記事数があったのか?を確認したいので、メールにてサイト名を教えてもらっても良いですか?
投稿者:matsu  投稿日時:2022-01-24 13:21:21
ありがとうございます。
メールいたしました。
投稿者:齋藤毅  投稿日時:2022-01-25 10:18:55
カスタムフィールドの設定状況を確認しました。
記事数は想定範囲内でしたが、カスタムフィールドの項目が想定以上の数でした。

ただ、500件中数件の記事にのみ値が設定されている項目があり、移行機能上無駄な動作がたくさんありましたので、次のバージョンでカスタムフィールドの項目に値がないものは移行しないといった機能を追加します。

改修後に私の環境で移行を試してみましたところ、実行時間が大幅に削減されたことが確認できました。
投稿者:matsu  投稿日時:2022-01-25 10:47:20
ありがとうございます。
次のバージョンをお待ちしております。

次のバージョンにバージョンアップした後ですと、下記の変更は行わなくてもよろしいでしょうか?

時間がかかりそうですので、再実行するためのHTMLの改修箇所をお伝えします。
/CMSインストールディレクトリ/common/site_include/plugin/CustomFieldAdvanced/config/CustomFieldAdvancedPluginFormPage.html
のファイルの
<!-- soy:display="add_field" -->

<!-- /soy:display="add_field" -->
を削除すれば、実行ボタンが再び表示されます。

/www/SOYCMSインストールフォルダ/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
をサーバーからダウンロードし、
https://github.com/inunosinsi/soycms/blob/master/cms/common/site_include/plugin/CustomFieldAdvanced/logic/MigrateConfigLogic.class.php
のコードを上書きして、再びサーバーへアップすればよろしいでしょうか。
上記の対応をした後、念の為に/サイトID/.db/sqlite.db をバックアップしてから再度実行してみてください。

正常に移行したサイトに影響はありませんか?
影響がないようにコードを書いていますが、念の為のバックアップをお願いします。
投稿者:齋藤毅  投稿日時:2022-01-25 13:54:06
https://saitodev.co/soycms/でダウンロードできるようにしました。
/CMSインストールディレクトリ/common/site_include/plugin/CustomFieldAdvanced/config/CustomFieldAdvancedPluginFormPage.html
のファイル
新しいバージョンでは上記のファイルの変更は不要です。
投稿者:matsu  投稿日時:2022-01-25 14:00:05
無事、移行が完了しました!
ありがとうございました。
ログインして投稿する