app/DoctrineMigrations/Version20230928014611.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 Version20230928014611 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         // 重複した在庫がdtb_product_stockにあるのか確認する。
  18.         $exists $this->connection->fetchAllKeyValue(
  19. SELECT product_class_id, product_class_id_count
  20. FROM (
  21.          SELECT
  22.              product_class_id,
  23.              COUNT(product_class_id) AS product_class_id_count
  24.          FROM
  25.              dtb_product_stock
  26.          GROUP BY
  27.              product_class_id
  28.      ) AS subquery
  29. WHERE product_class_id_count > 1;
  30. ");
  31.         // 重複在庫がある場合、dtb_product_class.stockを正として、それ以外の在庫情報は削除する
  32.         if (count($exists) != 0) {
  33.             foreach ($exists as $pc_id => $value) {
  34.                 $stock $this->connection->fetchOne("SELECT stock FROM dtb_product_class WHERE id = :id", ["id" => $pc_id]);
  35.                 $this->addSql("DELETE FROM dtb_product_stock WHERE product_class_id = :pc_id", ["pc_id" => $pc_id]);
  36.                 $this->addSql("INSERT INTO dtb_product_stock (product_class_id, creator_id, stock, create_date, update_date, discriminator_type) VALUES (:pc_id, NULL, :stock, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'productstock')", ["pc_id" => $pc_id"stock" => $stock]);
  37.             }
  38.         }
  39.     }
  40.     public function down(Schema $schema): void
  41.     {
  42.     }
  43. }