app/DoctrineMigrations/Version20251114000000.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * 商品一覧の絞り込み領域表示フラグの追加
  8.  * dtb_schoolテーブルにfilter_visible_flagカラムを追加
  9.  */
  10. final class Version20251114000000 extends AbstractMigration
  11. {
  12.     public function getDescription(): string
  13.     {
  14.         return 'dtb_schoolテーブルにfilter_visible_flagカラムを追加';
  15.     }
  16.     public function up(Schema $schema): void
  17.     {
  18.         $schemaManager $this->connection->createSchemaManager();
  19.         
  20.         // テーブルが存在するか確認
  21.         if (!$schemaManager->tablesExist(['dtb_school'])) {
  22.             return;
  23.         }
  24.         // カラムの存在確認
  25.         $columns $schemaManager->listTableColumns('dtb_school');
  26.         $columnNames array_map(function($column) {
  27.             return $column->getName();
  28.         }, $columns);
  29.         // filter_visible_flagカラムが存在しない場合に追加
  30.         if (!in_array('filter_visible_flag'$columnNames)) {
  31.             $this->addSql('ALTER TABLE dtb_school ADD filter_visible_flag SMALLINT UNSIGNED DEFAULT 1 COMMENT \'絞り込み領域表示フラグ\'');
  32.         }
  33.     }
  34.     public function down(Schema $schema): void
  35.     {
  36.         $schemaManager $this->connection->createSchemaManager();
  37.         
  38.         // テーブルが存在するか確認
  39.         if (!$schemaManager->tablesExist(['dtb_school'])) {
  40.             return;
  41.         }
  42.         // カラムの存在確認
  43.         $columns $schemaManager->listTableColumns('dtb_school');
  44.         $columnNames array_map(function($column) {
  45.             return $column->getName();
  46.         }, $columns);
  47.         // filter_visible_flagカラムが存在する場合に削除
  48.         if (in_array('filter_visible_flag'$columnNames)) {
  49.             $this->addSql('ALTER TABLE dtb_school DROP COLUMN filter_visible_flag');
  50.         }
  51.     }
  52. }