app/DoctrineMigrations/Version20251020000000.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.  * Add reserve_note_visible_flag column to dtb_school table
  8.  */
  9. final class Version20251020000000 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Add reserve_note_visible_flag column to dtb_school table';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $schemaManager $this->connection->createSchemaManager();
  18.         
  19.         // テーブルが存在するかチェック
  20.         if (!$schemaManager->tablesExist(['dtb_school'])) {
  21.             return;
  22.         }
  23.         
  24.         $columns $schemaManager->listTableColumns('dtb_school');
  25.         $columnNames array_map(function($column) {
  26.             return $column->getName();
  27.         }, $columns);
  28.         
  29.         // reserve_note_visible_flagカラムが存在しない場合のみ追加
  30.         if (!in_array('reserve_note_visible_flag'$columnNames)) {
  31.             // Add reserve_note_visible_flag column to dtb_school table
  32.             $this->addSql('ALTER TABLE dtb_school ADD reserve_note_visible_flag SMALLINT UNSIGNED NULL DEFAULT 1');
  33.         }
  34.     }
  35.     public function down(Schema $schema): void
  36.     {
  37.         $schemaManager $this->connection->createSchemaManager();
  38.         
  39.         // テーブルが存在するかチェック
  40.         if (!$schemaManager->tablesExist(['dtb_school'])) {
  41.             return;
  42.         }
  43.         
  44.         $columns $schemaManager->listTableColumns('dtb_school');
  45.         $columnNames array_map(function($column) {
  46.             return $column->getName();
  47.         }, $columns);
  48.         
  49.         // reserve_note_visible_flagカラムが存在する場合のみ削除
  50.         if (in_array('reserve_note_visible_flag'$columnNames)) {
  51.             // Remove reserve_note_visible_flag column from dtb_school table
  52.             $this->addSql('ALTER TABLE dtb_school DROP reserve_note_visible_flag');
  53.         }
  54.     }
  55. }