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