app/DoctrineMigrations/Version20260129000000.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. final class Version20260129000000 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'Add order_delivery_date, order_handover_date columns to dtb_order and delivery_date, handover_date columns to dtb_order_item tables';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // dtb_orderテーブルに受注の納入日とお渡し日カラムを追加
  18.         $table $schema->getTable('dtb_order');
  19.         
  20.         if (!$table->hasColumn('order_delivery_date')) {
  21.             $table->addColumn('order_delivery_date''datetimetz', [
  22.                 'notnull' => false,
  23.                 'comment' => '受注の納入日'
  24.             ]);
  25.         }
  26.         
  27.         if (!$table->hasColumn('order_handover_date')) {
  28.             $table->addColumn('order_handover_date''datetimetz', [
  29.                 'notnull' => false,
  30.                 'comment' => '受注のお渡し日'
  31.             ]);
  32.         }
  33.         // dtb_order_itemテーブルに商品の納入日とお渡し日カラムを追加
  34.         $orderItemTable $schema->getTable('dtb_order_item');
  35.         
  36.         if (!$orderItemTable->hasColumn('item_delivery_date')) {
  37.             $orderItemTable->addColumn('item_delivery_date''datetimetz', [
  38.                 'notnull' => false,
  39.                 'comment' => '商品の納入日'
  40.             ]);
  41.         }
  42.         
  43.         if (!$orderItemTable->hasColumn('item_handover_date')) {
  44.             $orderItemTable->addColumn('item_handover_date''datetimetz', [
  45.                 'notnull' => false,
  46.                 'comment' => '商品のお渡し日'
  47.             ]);
  48.         }
  49.     }
  50.     public function down(Schema $schema): void
  51.     {
  52.         // ロールバック時はカラムを削除
  53.         $table $schema->getTable('dtb_order');
  54.         
  55.         if ($table->hasColumn('order_delivery_date')) {
  56.             $table->dropColumn('order_delivery_date');
  57.         }
  58.         
  59.         if ($table->hasColumn('order_handover_date')) {
  60.             $table->dropColumn('order_handover_date');
  61.         }
  62.         // dtb_order_itemテーブルのカラムも削除
  63.         $orderItemTable $schema->getTable('dtb_order_item');
  64.         
  65.         if ($orderItemTable->hasColumn('item_delivery_date')) {
  66.             $orderItemTable->dropColumn('item_delivery_date');
  67.         }
  68.         
  69.         if ($orderItemTable->hasColumn('item_handover_date')) {
  70.             $orderItemTable->dropColumn('item_handover_date');
  71.         }
  72.     }
  73. }