バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > プラグインアップデートで既存データを移行したい

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2018/9/7 18:08
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
Re: プラグインアップデートで既存データを移行したい
次のように実装しましたが、うまくいきませんでした。。


class Version201809061627000 extends AbstractMigration
{
    public function up(Schema $schema)
    {
        $this->createTablePlgFeatureContent($schema);
        $this->copyContent($schema);
    }

    protected function createTablePlgFeatureContent(Schema $schema)
    {
        $table = $schema->createTable('plg_feature_content');
        $table->addColumn('id', 'integer', array(
            'autoincrement' => true,
        ));
        $table->addColumn('feature_id', 'integer', array(
            'notnull' => true,
            'unsigned' => false,
        ));
        $table->addColumn('position', 'smallint', array(
            'notnull' => true,
            'unsigned' => false,
        ));
        $table->addColumn('content', 'text', array(
            'notnull' => false,
            'default' => null,
        ));
        $table->setPrimaryKey(array('id'));

        $table->addForeignKeyConstraint(
            'plg_feature_page',
            array('feature_id'),
            array('id')
        );
    }

    protected function copyContent(Schema $schema)
    {
        $num = $this->connection->fetchAssoc('SELECT COUNT(*) FROM plg_feature_page');

        $id = 1;
        for ($i=1; $i<=$num; $i++) {
            $this->addSql("INSERT INTO plg_feature_content (id, feature_id, position, content) SELECT ".$id++.", id, 1, content1 FROM plg_feature_page WHERE id=".$i.";");
            $this->addSql("INSERT INTO plg_feature_content (id, feature_id, position, content) SELECT ".$id++.", id, 2, content2 FROM plg_feature_page WHERE id=".$i.";");
            $this->addSql("INSERT INTO plg_feature_content (id, feature_id, position, content) SELECT ".$id++.", id, 3, content3 FROM plg_feature_page WHERE id=".$i.";");
            $this->addSql("INSERT INTO plg_feature_content (id, feature_id, position, content) SELECT ".$id++.", id, 4, content4 FROM plg_feature_page WHERE id=".$i.";");
            $this->addSql("INSERT INTO plg_feature_content (id, feature_id, position, content) SELECT ".$id++.", id, 5, content5 FROM plg_feature_page WHERE id=".$i.";");
        }
    }

    public function down(Schema $schema)
    {
        if ($schema->hasTable('plg_feature_content')) {
            $schema->dropTable('plg_feature_content');
        }
        if ($schema->hasSequence('plg_feature_content_seq')) {
            $schema->dropSequence('plg_feature_content_seq');
        }
    }
}


コンソールから実行したら何も表示されずに終了しました。

$ /Applications/MAMP/bin/php/php5.6.10/bin/php app/console plugin:develop update --code=FeaturePage --path=FeaturePagePlugin110.tar.gz

管理画面からアップデートを試してみたら500エラーになりました。

500エラー?
実装ミスがあると500エラーになるのでしょうか。。

データベースの migration_FeaturePage に今回のマイグレーションバージョンのレコードが追加されていなかったので、コケているのは間違いないと思われます。


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

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   プラグインアップデートで既存データを移行したい h_tanaka 2018/9/6 16:56
     Re: プラグインアップデートで既存データを移行したい 468 2018/9/7 10:27
       Re: プラグインアップデートで既存データを移行したい h_tanaka 2018/9/7 17:34
       » Re: プラグインアップデートで既存データを移行したい h_tanaka 2018/9/7 18:08
           Re: プラグインアップデートで既存データを移行したい 468 2018/9/10 9:30
             Re: プラグインアップデートで既存データを移行したい h_tanaka 2018/9/10 15:16
               Re: プラグインアップデートで既存データを移行したい 468 2018/9/11 10:48
                 Re: プラグインアップデートで既存データを移行したい h_tanaka 2018/9/14 16:08

 



ログイン


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

統計情報

総メンバー数は88,998名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.