vendor/bluue/sales-bundle/migrations/Version20240301131526.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace SalesBundleMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. use Symfony\Component\Uid\UuidV6;
  7. /**
  8.  * Auto-generated Migration: Please modify to your needs!
  9.  */
  10. final class Version20240301131526 extends AbstractMigration
  11. {
  12.     private array $orders_quotations = [];
  13.     public function preUp(Schema $schema): void
  14.     {
  15.         $this->orders_quotations $this->connection->executeQuery('SELECT id, quotation_id FROM sales_bundle__order WHERE quotation_id IS NOT NULL')->fetchAllAssociative();
  16.     }
  17.     public function up(Schema $schema): void
  18.     {
  19.         // this up() migration is auto-generated, please modify it to your needs
  20.         $this->addSql('ALTER TABLE sales_bundle__order DROP FOREIGN KEY FK_FBA82B62B4EA4E60');
  21.         $this->addSql('DROP INDEX UNIQ_FBA82B62B4EA4E60 ON sales_bundle__order');
  22.         $this->addSql('ALTER TABLE sales_bundle__order DROP quotation_id');
  23.         $this->addSql('ALTER TABLE sales_bundle__quotation ADD order_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\'');
  24.         $this->addSql('ALTER TABLE sales_bundle__quotation ADD CONSTRAINT FK_A0FC50DF8D9F6D38 FOREIGN KEY (order_id) REFERENCES sales_bundle__order (id)');
  25.         $this->addSql('CREATE INDEX IDX_A0FC50DF8D9F6D38 ON sales_bundle__quotation (order_id)');
  26.     }
  27.     public function down(Schema $schema): void
  28.     {
  29.         // this down() migration is auto-generated, please modify it to your needs
  30.         $this->addSql('ALTER TABLE sales_bundle__order ADD quotation_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\'');
  31.         $this->addSql('ALTER TABLE sales_bundle__order ADD CONSTRAINT FK_FBA82B62B4EA4E60 FOREIGN KEY (quotation_id) REFERENCES sales_bundle__quotation (id)');
  32.         $this->addSql('CREATE UNIQUE INDEX UNIQ_FBA82B62B4EA4E60 ON sales_bundle__order (quotation_id)');
  33.         $this->addSql('ALTER TABLE sales_bundle__quotation DROP FOREIGN KEY FK_A0FC50DF8D9F6D38');
  34.         $this->addSql('DROP INDEX IDX_A0FC50DF8D9F6D38 ON sales_bundle__quotation');
  35.         $this->addSql('ALTER TABLE sales_bundle__quotation DROP order_id');
  36.     }
  37.     public function postUp(Schema $schema): void
  38.     {
  39.         parent::postUp($schema);
  40.         $conn $this->connection;
  41.         foreach ($this->orders_quotations as $oq) {
  42.             $order_uuid '0x' str_replace('-'''UuidV6::fromBinary($oq['id'])->toRfc4122());
  43.             $quotation_uuid UuidV6::fromBinary($oq['quotation_id'])->toRfc4122();
  44.             $conn->executeStatement("UPDATE sales_bundle__quotation SET order_id = " $order_uuid " WHERE id = UNHEX(CONCAT('', REPLACE('" $quotation_uuid "', '-', '')))");
  45.         }
  46.     }
  47. }