バージョン選択

フォーラム

メニュー

オンライン状況

74 人のユーザが現在オンラインです。 (59 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 73
tattsu もっと...

サイト内検索

質問 > 管理機能 > Entity を更新してもスキーマが更新されない

管理機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Fh4mYMeqz9
投稿日時: 2020/6/2 21:38
対応状況: −−−
新米
登録日: 2011/8/26
居住地:
投稿: 6
Re: Entity を更新してもスキーマが更新されない
------
その後さらに調べたところ、最近入れたプラグインが ProductTrait を持っていました。
このためプロキシが作成されていました。
ProductTrait があると拡張前の Product を変更しても反映されないようです。
------
↑ありがとうございます、大変助かりました!!
h_tanaka
投稿日時: 2019/9/6 21:02
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: Entity を更新してもスキーマが更新されない
自己解決しました。

プロキシ生成コマンドを実行すると、ProductEntity のプロキシのみが生成されていました。

$ php bin/console eccube:generate:proxies
gen -> /Applications/MAMP/htdocs/test/dev/app/proxy/entity/Product.php

このファイルの中身を見てみると、更新前のカラムが残っていました。

app/proxy/entity/Product.php
を手動でファイル削除しました。

その後スキーマ更新を再度行ったところ、ちゃんとSQLが発行されました。

$ php bin/console doctrine:schema:update --dump-sql
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_h0rUy3NXvG3S/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_h0rUy3NXvG3S/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_h0rUy3NXvG3S/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_h0rUy3NXvG3S/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_h0rUy3NXvG3S/Product.php
The following SQL statements will be executed:
ALTER TABLE dtb_product ADD coupon_id INT UNSIGNED DEFAULT NULL, DROP coupon_cd;

削除した Proxy を再作成して元に戻します。
$ php bin/console eccube:generate:proxies

その後さらに調べたところ、最近入れたプラグインが ProductTrait を持っていました。
このためプロキシが作成されていました。
ProductTrait があると拡張前の Product を変更しても反映されないようです。
勉強になりました。


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

h_tanaka
投稿日時: 2019/9/6 18:49
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Entity を更新してもスキーマが更新されない
EC-CUBE4.0.2

商品情報にクーポンコードを持たせる実装をしました。

src/Eccube/Entity/Product.php
        /**
         * @var string
         *
         * @ORM\Column(name="coupon_cd", type="string", nullable=true, length=20)
         */
        private $coupon_cd;


このときは問題なくスキーマ更新でDBに反映されました。
$ php bin/console doctrine:schema:update --dump-sql
$ php bin/console doctrine:schema:update --dump-sql --force


その後、カラムをクーポンコードからクーポンIDに変更したいと思い、次のように変更したのですが、スキーマ更新コマンドを打ってもカラムを更新するSQLが発行されません。
原因わかりますでしょうか?

src/Eccube/Entity/Product.php
        /**
         * @var int
         *
         * @ORM\Column(name="coupon_id", type="integer", nullable=true, options={"unsigned":true})
         */
        private $coupon_id;


試したコマンドは次のとおりです。

$ php bin/console cache:clear --no-warmup
$ php bin/console doctrine:schema:update --dump-sql
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_jZlU0NR7CH4V/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_jZlU0NR7CH4V/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_jZlU0NR7CH4V/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_jZlU0NR7CH4V/Product.php
gen -> /var/folders/g8/2s6381qd4tbgr7r9rjb6tkh80000gn/T/proxy_jZlU0NR7CH4V/Product.php
[OK] Nothing to update - your database is already in sync with the current entity metadata.

なお、app/Customize/Entity は使用していません。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,303名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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