app/DoctrineMigrations/Version20251225120000.php line 1

Open in your IDE?
  1. <?php
    
    declare(strict_types=1);
    
    namespace DoctrineMigrations;
    
    use Doctrine\DBAL\Schema\Schema;
    use Doctrine\Migrations\AbstractMigration;
    
    /**
     * dtb_order_register_itemテーブルに入庫数カラムを追加
     */
    final class Version20251225120000 extends AbstractMigration
    {
        public function up(Schema $schema): void
        {
            // dtb_order_register_itemテーブルの存在確認
            if (!$schema->hasTable('dtb_order_register_item')) {
                $this->write('dtb_order_register_itemテーブルが存在しません。スキップします。');
                return;
            }
    
            $table = $schema->getTable('dtb_order_register_item');
            
            // stock_in_quantityカラムが既に存在する場合はスキップ
            if ($table->hasColumn('stock_in_quantity')) {
                $this->write('stock_in_quantityカラムは既に存在します。スキップします。');
                return;
            }
    
            // dtb_order_register_itemテーブルに入庫数カラムを追加
            $this->addSql("
                ALTER TABLE dtb_order_register_item
                ADD COLUMN stock_in_quantity INT NOT NULL DEFAULT 0 COMMENT '入庫数' AFTER quantity
            ");
            
            $this->write('dtb_order_register_itemテーブルに入庫数カラムを追加しました');
        }
    
        public function down(Schema $schema): void
        {
            // dtb_order_register_itemテーブルの存在確認
            if (!$schema->hasTable('dtb_order_register_item')) {
                $this->write('dtb_order_register_itemテーブルが存在しません。スキップします。');
                return;
            }
    
            $table = $schema->getTable('dtb_order_register_item');
            
            // stock_in_quantityカラムが存在しない場合はスキップ
            if (!$table->hasColumn('stock_in_quantity')) {
                $this->write('stock_in_quantityカラムが存在しません。スキップします。');
                return;
            }
    
            // ロールバック: 入庫数カラムを削除
            $this->addSql("
                ALTER TABLE dtb_order_register_item
                DROP COLUMN stock_in_quantity
            ");
            
            $this->write('dtb_order_register_itemテーブルから入庫数カラムを削除しました');
        }
    }