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