app/DoctrineMigrations/Version20250919081643.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.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20250919081643 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Add juchuuhyou fields to plg_claim_pdf table';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $schemaManager $this->connection->createSchemaManager();
  18.         
  19.         // テーブルが存在するかチェック
  20.         if (!$schemaManager->tablesExist(['plg_claim_pdf'])) {
  21.             return;
  22.         }
  23.         
  24.         $columns $schemaManager->listTableColumns('plg_claim_pdf');
  25.         $columnNames array_map(function($column) {
  26.             return $column->getName();
  27.         }, $columns);
  28.         
  29.         // Add juchuuhyou fields to plg_claim_pdf table with default values
  30.         if (!in_array('title_juchuuhyou'$columnNames)) {
  31.             $this->addSql("ALTER TABLE plg_claim_pdf ADD title_juchuuhyou VARCHAR(255) DEFAULT '受注票'");
  32.         }
  33.         
  34.         if (!in_array('message1_juchuuhyou'$columnNames)) {
  35.             $this->addSql("ALTER TABLE plg_claim_pdf ADD message1_juchuuhyou VARCHAR(255) DEFAULT 'このたびはご注文いただきありがとうございます。'");
  36.         }
  37.         
  38.         if (!in_array('message2_juchuuhyou'$columnNames)) {
  39.             $this->addSql("ALTER TABLE plg_claim_pdf ADD message2_juchuuhyou VARCHAR(255) DEFAULT '下記の内容にて受注させていただきました。'");
  40.         }
  41.         
  42.         if (!in_array('message3_juchuuhyou'$columnNames)) {
  43.             $this->addSql("ALTER TABLE plg_claim_pdf ADD message3_juchuuhyou VARCHAR(255) DEFAULT 'ご確認くださいますよう、お願いいたします。'");
  44.         }
  45.         
  46.         // Update existing records with default values
  47.         $this->addSql("UPDATE plg_claim_pdf SET title_juchuuhyou = '受注票' WHERE title_juchuuhyou IS NULL");
  48.         $this->addSql("UPDATE plg_claim_pdf SET message1_juchuuhyou = 'このたびはご注文いただきありがとうございます。' WHERE message1_juchuuhyou IS NULL");
  49.         $this->addSql("UPDATE plg_claim_pdf SET message2_juchuuhyou = '下記の内容にて受注させていただきました。' WHERE message2_juchuuhyou IS NULL");
  50.         $this->addSql("UPDATE plg_claim_pdf SET message3_juchuuhyou = 'ご確認くださいますよう、お願いいたします。' WHERE message3_juchuuhyou IS NULL");
  51.     }
  52.     public function down(Schema $schema): void
  53.     {
  54.         $schemaManager $this->connection->createSchemaManager();
  55.         
  56.         // テーブルが存在するかチェック
  57.         if (!$schemaManager->tablesExist(['plg_claim_pdf'])) {
  58.             return;
  59.         }
  60.         
  61.         $columns $schemaManager->listTableColumns('plg_claim_pdf');
  62.         $columnNames array_map(function($column) {
  63.             return $column->getName();
  64.         }, $columns);
  65.         
  66.         // Remove juchuuhyou fields from plg_claim_pdf table
  67.         if (in_array('title_juchuuhyou'$columnNames)) {
  68.             $this->addSql('ALTER TABLE plg_claim_pdf DROP title_juchuuhyou');
  69.         }
  70.         
  71.         if (in_array('message1_juchuuhyou'$columnNames)) {
  72.             $this->addSql('ALTER TABLE plg_claim_pdf DROP message1_juchuuhyou');
  73.         }
  74.         
  75.         if (in_array('message2_juchuuhyou'$columnNames)) {
  76.             $this->addSql('ALTER TABLE plg_claim_pdf DROP message2_juchuuhyou');
  77.         }
  78.         
  79.         if (in_array('message3_juchuuhyou'$columnNames)) {
  80.             $this->addSql('ALTER TABLE plg_claim_pdf DROP message3_juchuuhyou');
  81.         }
  82.     }
  83. }