アップグレードが正常に実行された後、ストアドモジュールのバージョン番号が更新されない

upd.addon-name.php update メソッドを使用してデータベースの変更を適用したカスタムモジュールがあります。別のバージョンのアップデート(1.4.0から1.5.0まで)のために、もう一度それを使用しようとしています。しかし今度は、ExpressionEngineはモジュールアップデートを正常に実行しますが(エラーはスローされません)、 exp_modules のバージョン番号の更新に失敗します。これは、「モジュールの実行更新」ボタンを使用して更新するか、またはアドオンの設定にアクセスして更新するかどうかに関係なく実行されます。

これは、モジュールの設定ページにアクセスするたびに再度アップグレードを実行しようとします。重複する列について不平を言っているmysqlエラーがスローされます(すでにそれらが追加されているためです)。

誰もこれまでにこれまでに遭遇したことはありますか?回避策として、更新機能でそのテーブルのバージョンを自分で更新するのは安全ですか?

これはExpressionEngineバージョン2.7.3で2つの別々のインストールで発生したことを言及する必要があります。

1

1 答え

update()メソッドにはどのようなコードがありますか?更新するデータベーステーブルの更新メソッドから return する必要があると思います。

つまり、Storeでは、単に exp_modules テーブルを手動で更新するだけです(メモリから拡張機能のためにこれを行う必要があります)。

1
追加された
更新関数を通るパスが return false ステートメントにつながったことが判明しました。それがなぜそこにあったのかは分かりません。
追加された 著者 epocsquadron,