app/DoctrineMigrations/Version20260213000001.php line 1

Open in your IDE?
  1. <?php
    
    namespace DoctrineMigrations;
    
    use Doctrine\DBAL\Schema\Schema;
    use Doctrine\Migrations\AbstractMigration;
    
    /**
     * School entity migration for new visible type fields
     * - 採寸項目の表示制御: dr06, dr14-17, dr23-25, dr50-53
     * - 団体情報項目の表示制御: dantai, daihyou01/02, daikana01/02, namtxt, measuring_method
     */
    final class Version20260213000001 extends AbstractMigration
    {
        public function up(Schema $schema): void
        {
            $table = $schema->getTable('dtb_school');
    
            // 採寸項目表示制御: dr06 (上着丈)
            if (!$table->hasColumn('dr06_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr06_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '上着丈_表示'");
            }
    
            // 採寸項目表示制御: dr14 (胸回り)
            if (!$table->hasColumn('dr14_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr14_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '胸回り_表示'");
            }
    
            // 採寸項目表示制御: dr15 (中胴)
            if (!$table->hasColumn('dr15_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr15_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '中胴_表示'");
            }
    
            // 採寸項目表示制御: dr16 (袖丈)
            if (!$table->hasColumn('dr16_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr16_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '袖丈_表示'");
            }
    
            // 採寸項目表示制御: dr17 (ヒップ_2)
            if (!$table->hasColumn('dr17_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr17_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT 'ヒップ_2_表示'");
            }
    
            // 採寸項目表示制御: dr23 (渡り巾)
            if (!$table->hasColumn('dr23_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr23_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '渡り巾_表示'");
            }
    
            // 採寸項目表示制御: dr24 (股上)
            if (!$table->hasColumn('dr24_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr24_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '股上_表示'");
            }
    
            // 採寸項目表示制御: dr25 (裾巾)
            if (!$table->hasColumn('dr25_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr25_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '裾巾_表示'");
            }
    
            // 採寸項目表示制御: dr50 (袖丈左)
            if (!$table->hasColumn('dr50_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr50_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '袖丈左_表示'");
            }
    
            // 採寸項目表示制御: dr51 (袖丈右)
            if (!$table->hasColumn('dr51_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr51_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '袖丈右_表示'");
            }
    
            // 採寸項目表示制御: dr52 (裾丈左)
            if (!$table->hasColumn('dr52_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr52_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '裾丈左_表示'");
            }
    
            // 採寸項目表示制御: dr53 (裾丈右)
            if (!$table->hasColumn('dr53_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dr53_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '裾丈右_表示'");
            }
    
            // 団体情報表示制御: dantai (団体情報)
            if (!$table->hasColumn('dantai_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD dantai_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '団体名_表示'");
            }
    
            // 団体情報表示制御: daihyou (代表者01と02を統合)
            if (!$table->hasColumn('daihyou_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD daihyou_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '代表者_表示'");
            }
    
            // 団体情報表示制御: daikana (代表者カナ01と02を統合)
            if (!$table->hasColumn('daikana_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD daikana_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '代表者カナ_表示'");
            }
    
            // お名前表示制御: namtxt (お名前テキスト)
            if (!$table->hasColumn('namtxt_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD namtxt_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT 'お名前_表示'");
            }
    
            // 計測方法表示制御: measuring_method
            if (!$table->hasColumn('measuring_method_visible_type')) {
                $this->addSql("ALTER TABLE dtb_school ADD measuring_method_visible_type SMALLINT UNSIGNED DEFAULT NULL COMMENT '計測方法_表示'");
            }
        }
    
        public function down(Schema $schema): void
        {
            $table = $schema->getTable('dtb_school');
    
            // ロールバック: 追加したvisible_typeカラムを削除
            if ($table->hasColumn('dr06_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr06_visible_type');
            }
            if ($table->hasColumn('dr14_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr14_visible_type');
            }
            if ($table->hasColumn('dr15_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr15_visible_type');
            }
            if ($table->hasColumn('dr16_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr16_visible_type');
            }
            if ($table->hasColumn('dr17_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr17_visible_type');
            }
            if ($table->hasColumn('dr23_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr23_visible_type');
            }
            if ($table->hasColumn('dr24_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr24_visible_type');
            }
            if ($table->hasColumn('dr25_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr25_visible_type');
            }
            if ($table->hasColumn('dr50_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr50_visible_type');
            }
            if ($table->hasColumn('dr51_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr51_visible_type');
            }
            if ($table->hasColumn('dr52_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr52_visible_type');
            }
            if ($table->hasColumn('dr53_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dr53_visible_type');
            }
            if ($table->hasColumn('dantai_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN dantai_visible_type');
            }
            if ($table->hasColumn('daihyou_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN daihyou_visible_type');
            }
            if ($table->hasColumn('daikana_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN daikana_visible_type');
            }
            if ($table->hasColumn('namtxt_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN namtxt_visible_type');
            }
            if ($table->hasColumn('measuring_method_visible_type')) {
                $this->addSql('ALTER TABLE dtb_school DROP COLUMN measuring_method_visible_type');
            }
        }
    }