バージョン選択

フォーラム

メニュー

オンライン状況

87 人のユーザが現在オンラインです。 (57 人のユーザが フォーラム を参照しています。)
登録ユーザ: 4
ゲスト: 83
tommy10 HANTEN gwkozaki red もっと...

サイト内検索

プラグイン > 開発について > プラグインのアップデートでカラムが追加されない

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2019/3/20 17:39
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 932
プラグインのアップデートでカラムが追加されない
EC-CUBE4.0.2

プラグインを新規作成するときは、EntityにORMで定義していればインストール時に自動でデータベースにテーブルが追加されました。

プラグインをアップデートするときに、プラグインインストール時に作成したテーブルに対してカラムを追加したいのですが、EntityにORMで定義しただけではカラムが追加されませんでした。
なぜでしょうか?

なお、インストールはコンソールから行い、アップデートはプラグインを圧縮してユーザー独自プラグインから圧縮ファイルを指定して行いました。
アップデート自体は成功しました。

プラグインの既存のEntityに追加したのは次のコードです。

    /**
     * @var string
     *
     * @ORM\Column(name="meta_description", type="string", nullable=true)
     */
    private $meta_description;

    public function getMetaDescription()
    {
        return $this->meta_description;
    }

    public function setMetaDescription($metaDescription)
    {
        $this->meta_description = $metaDescription;
        return $this;
    }
tao_s
投稿日時: 2019/3/20 17:54
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 780
Re: プラグインのアップデートでカラムが追加されない
今ざっくり4のコード追ってみましたが、プラグインのインストールとアンインストールの時はスキーマのアップデートが走ってる様ですが、アップデートの時は走っていない様です。
プラグインのアップデート処理から generateProxyAndUpdateSchema()を呼ばないといけないのかな?


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

h_tanaka
投稿日時: 2019/3/20 18:08
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 932
Re: プラグインのアップデートでカラムが追加されない
tao_s さん
ありがとうございます!

アップデート時に generateProxyAndUpdateSchema() を呼ぶようにしてみたところ、カラムの追加が実行されました。

これはEC-CUBEの実装漏れでしょうか...?

    // アップデート時
    public function update(array $meta, ContainerInterface $container)
    {
        $Plugin = $container->get(PluginRepository::class)->findByCode('tbsFeaturePage');
        $PluginService = $container->get(PluginService::class);

        if (!$Plugin) {
            throw new NotFoundHttpException();
        }

        $config = $PluginService->readConfig($PluginService->calcPluginDir($Plugin->getCode()));

        $PluginService->generateProxyAndUpdateSchema($Plugin, $config);
    }
h_tanaka
投稿日時: 2019/3/20 18:16
対応状況: −−−
仙人
登録日: 2016/7/22
居住地: 愛媛県
投稿: 932
Re: プラグインのアップデートでカラムが追加されない
本体のバグのようです。
https://github.com/EC-CUBE/ec-cube/issues/4065


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は52,559名です
総投稿数は93,819件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
2010
4
468
1873
5
yuh
1610
6
red
1359
7
umebius
1343
8
h_tanaka
932
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
780
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.