app/DoctrineMigrations/Version20251119161237.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.  * dtb_product_stockテーブルの無効なproduct_class_idを持つレコードを削除
  8.  */
  9. final class Version20251119161237 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return 'dtb_product_stockテーブルの無効なproduct_class_idを持つレコードを削除';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // 無効なproduct_class_idを持つレコードを削除
  18.         // dtb_product_classテーブルに存在しないproduct_class_idを持つレコードを削除
  19.         $this->addSql("
  20.             DELETE FROM dtb_product_stock 
  21.             WHERE product_class_id IS NOT NULL 
  22.             AND product_class_id NOT IN (SELECT id FROM dtb_product_class)
  23.         ");
  24.     }
  25.     public function down(Schema $schema): void
  26.     {
  27.         // このマイグレーションはデータクリーニングのため、ロールバックは不可能
  28.         // 削除されたデータを復元することはできない
  29.     }
  30. }