app/DoctrineMigrations/Version20251210000000.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.  * 学校マスターテーブルに帳票印刷内容表示フラグカラムを追加
  9.  */
  10. final class Version20251210000000 extends AbstractMigration
  11. {
  12.     public function getDescription(): string
  13.     {
  14.         return '受注テーブルに帳票印刷内容カラムを追加、学校マスターテーブルに帳票印刷内容表示フラグカラムを追加';
  15.     }
  16.     public function up(Schema $schema): void
  17.     {
  18.         $sm $this->connection->createSchemaManager();
  19.         // dtb_order テーブルに document_print_content カラムを追加
  20.         if ($sm->tablesExist(['dtb_order'])) {
  21.             $columns $sm->listTableColumns('dtb_order');
  22.             $columnNames array_map(function($column) {
  23.                 return $column->getName();
  24.             }, $columns);
  25.             if (!in_array('document_print_content'$columnNames)) {
  26.                 $this->addSql('ALTER TABLE dtb_order ADD document_print_content TEXT DEFAULT NULL');
  27.             }
  28.         }
  29.         // dtb_school テーブルに document_print_content_flag カラムを追加
  30.         if ($sm->tablesExist(['dtb_school'])) {
  31.             $columns $sm->listTableColumns('dtb_school');
  32.             $columnNames array_map(function($column) {
  33.                 return $column->getName();
  34.             }, $columns);
  35.             if (!in_array('document_print_content_flag'$columnNames)) {
  36.                 $this->addSql('ALTER TABLE dtb_school ADD document_print_content_flag SMALLINT UNSIGNED DEFAULT 0');
  37.             }
  38.         }
  39.     }
  40.     public function down(Schema $schema): void
  41.     {
  42.         $sm $this->connection->createSchemaManager();
  43.         // dtb_order テーブルから document_print_content カラムを削除
  44.         if ($sm->tablesExist(['dtb_order'])) {
  45.             $columns $sm->listTableColumns('dtb_order');
  46.             $columnNames array_map(function($column) {
  47.                 return $column->getName();
  48.             }, $columns);
  49.             if (in_array('document_print_content'$columnNames)) {
  50.                 $this->addSql('ALTER TABLE dtb_order DROP COLUMN document_print_content');
  51.             }
  52.         }
  53.         // dtb_school テーブルから document_print_content_flag カラムを削除
  54.         if ($sm->tablesExist(['dtb_school'])) {
  55.             $columns $sm->listTableColumns('dtb_school');
  56.             $columnNames array_map(function($column) {
  57.                 return $column->getName();
  58.             }, $columns);
  59.             if (in_array('document_print_content_flag'$columnNames)) {
  60.                 $this->addSql('ALTER TABLE dtb_school DROP COLUMN document_print_content_flag');
  61.             }
  62.         }
  63.     }
  64. }