26/03/2017
ECCUBE3でのマイグレーションファイルによるテーブルへの項目追加方法をご紹介します。 phpMyAdminやAdminerで追加すればかまいませんが、Migrationファイルを作成して実行すればGit管理可能であることや、再インストール時に自動で適用されるなど様々なメリットがあります。 ※ただしレンタルサーバーによってはそもそもSSH接続ができないなどの理由でMigrationが実行できない場合もあります。管理画面で実行できると良いなと思います。 実際の手順ですがまずはターミナル等でマイグレーション生成コマンドを叩きます。 $ php app/console migrations:generate すると/src/Eccube/Resource/doctrine/migration/ディレクトリ内にVersion20170321092503.phpのようなファイルが作成されます。 今回はこのファイルを編集して受注詳細テーブル(dtb_order_detail)へpendingというカラムを追加する方法をご紹介します。タイプはboolean(smallint)にします。 upメソッドの中にカラムを追加するコードを記述します。 /** * Schema $schema */ public function up(Schema $schema) { // this up() migration is auto-generated, please modify it to your needs $table = $schema->getTable('dtb_order_detail'); if(!$table->hasColumn('pending')){ $table->addColumn('pending', 'boolean')->setDefault(0); } } 次にdownメソッドの中にカラムを削除するコードを記述します。(コマンドで元に戻したい時のために) /** * Schema $schema */ public function down(Schema $schema) { // this down() migration is auto-generated, please modify it to your needs $table = $schema->getTable('dtb_order_detail'); if($table->hasColumn('pending')){ $table->dropColumn('pending'); } } ターミナルでマイグレーションを実行します。 php app/console migrations:migrate dtb_order_detailテーブルにpendingカラムが追加されていることをご確認ください。 参考サイト:
https://umebius.com/eccube/table_column_migration/
ECCUBE3でのマイグレーションファイルによるテーブルへの項目追加方法をご紹介します。 phpMyAdminやAdminerで追加すればかまいませんが、Migrationファイルを作成して実行すればGit管理可能である …